| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 01.02.08 Prihlásený: 10.04.15 Príspevky: 31 Témy: 11 | Napísal HT: 21.10.2011 15:50 | |
|
Zdravim robim program na editaciu vyskovych map a potreboval by som napisat podmienku pre editovanie oznaceneho vyseku z kruhu.
Pozname poziciu, polomer, a uhol od do.
Zatial mam:
Kód: for (int i=-rx; i<=rx; i++) for (int j=-rx; j<=rx; j++) if (i*i+j*j<=rx*rx) { if (inab(px+i, 0, mapa->x_width) and inab(pz+j, 0, mapa->z_height)) mapa->map[px+i][pz+j]+=df; }
kde rx je polomer, mapa->map[][] je 2D pole. Tato cast kodu meni cely kruh. Potreboval by som doplnit podmienku ktora by na zaklade 2 uhlov (ub, ue) dovolovala menit len danu cast kruhu. Roblili ste uz niekto podobnu vec? Popripade viete to niekto spravit? Nechcelo sa mi moc nad tym rozmyslat
ps: ub je vzdy < ue, obidva su z intervalu <0, 360>
|
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 21.10.2011 16:34 | |
|
napadá ma jedno riešenie: rozdelíš si kruh na uhly s tým, že si jasne určíš, kde je uhol 0°. uhly UB a UE udávaš vzhľadom na nulovú hladinu (vodorovný polomer doprava od stredu bude 0°). teraz, zoberieš si vzdialenosť bodu od stredu napr. stred by bol v [Xs=20,Ys=10], bod by bol v [Xb=25,Yb=15], polomer by bol 10, takže by sa do kruhu zmestil, jeho vzdialenosť od stredu by bola (dx=Xb-Xs=5,dy=Yb-Ys=5), z pytagorovej vety si vieš vyrátať aj presné číslo, ale to nepotrebuješ, pretože z týchto dvoch vecí si vieš vyrátať tangens uhla, ktorý zviera spojnica stredu a bodu, a z tangensu uhol (obidve funkcie naraz ti spraví funkcia atan2(dy,dx) z cmath (nezabudni, že výsledok udáva v radiánoch, si to potom ešte musíš prepočítať do stupňov) a zistíš, či sa nachádza medzi uhlami UB a UE, pokiaľ áno, bod sa nachádza v kruhovom výseku určenom bodmi UB a UE.. potom už len stačí prejsť všetky body v rámci kruhu, či sa nachádzajú vo výseku..
programovať sa mi to nechce, takže dúfam chápeš čo tým myslím
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
Registrovaný: 01.02.08 Prihlásený: 10.04.15 Príspevky: 31 Témy: 11 | Napísal autor témy HT: 21.10.2011 17:49 | |
|
diky moc, nieco podobne som uz robil
Kód: void set_alp_bet(float *alpts, float *betts, Vec3f l_from, Vec3f l_at) { Vec3f del=l_at-l_from; del.normalize(); *betts=asin(-del.y)*(180/3.141592); if (del.z<0) *alpts=acos(del.x/cos(*betts))*(180/3.141592); else *alpts=360.0-acos(del.x/cos(*betts))*(180/3.141592); }
staci prepisat na 2D
|
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| čiary do kruhu v C v Assembler, C, C++, Pascal, Java | 8 | 398 | 24.10.2011 21:22 coldak | | Zobrazit polozky do kruhu v HTML, XHTML, XML, CSS | 3 | 422 | 12.04.2012 9:19 Ďuri | | [Pascal] Dlzka kruhu - vypocet - zdrojovy kod v Assembler, C, C++, Pascal, Java | 2 | 1359 | 18.02.2008 21:23 Axwell | | API pre rozpoznanie tvare pre .net (C#) v Technológia .NET | 4 | 688 | 11.03.2017 13:40 jackal27 | | program na "výsek" videa v Video programy | 6 | 625 | 16.02.2011 19:00 tetele | | Podmienka v Technológia .NET | 2 | 399 | 22.02.2017 14:31 GamerSK | | podmienka v PHP, ASP | 1 | 472 | 22.11.2010 23:27 stenley | | podmienka if v PHP, ASP | 2 | 523 | 19.12.2009 18:21 M1rcO_o | | Podmienka nejde v JavaScript, VBScript, Ajax | 3 | 384 | 28.10.2011 11:41 chrono | | javascript podmienka v JavaScript, VBScript, Ajax | 6 | 931 | 01.03.2008 18:35 emer | | podmienka čas v JavaScript, VBScript, Ajax | 2 | 331 | 02.03.2013 14:03 p4tooo | | Brigáda pre študenta - C# v Ponuka práce | 0 | 762 | 16.01.2012 22:41 mess | | vyvojove prostredie pre C++ v Assembler, C, C++, Pascal, Java | 6 | 771 | 05.02.2011 20:00 johny3212 | | knizky pre c++(beginner) v Ostatné | 0 | 287 | 06.09.2010 7:10 MAREK17 | | Funcie pre Jazyk C v Assembler, C, C++, Pascal, Java | 0 | 563 | 14.04.2008 12:46 NUE | | c++ IDE pre KDE v Ostatné programy | 2 | 671 | 29.11.2006 15:22 itsgoingd |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|