|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
Kamazs Guru
Joined: 17 Jan 2003 Posts: 829 Location: The glorious ancient city of Loja
|
Posted: Wed Mar 08, 2006 12:53 pm Post subject: Koordināšu asu pagriešana par leņķi |
|
Lūk, sadūros ar kādu elementāru matemātiski ģeometrisku problēmu --
es renderēju spēles 2D plakanu pasauli zem leņķa "rotangle" (iekš OGL, vnk pagriežu uzzīmēto glRotatef(rotangle, 0, 0, 1)), savukārt GUI, ieskaitot kursoru, tiek ziimeets zem lenkja 0, tobish, nepagriests (jo GUI...negriezhaas).
Te nu ir problēma -- man vajag uzzinaat kursora koordinaates pagrieztajaa speeles pasaulee zinot nepagrieztaas pasaules (GUI) koordinaates. Tas ir, vienkārši runājot, es gribu, lai uzspiežot ar kursoru uz pasaules, objekts pagrieztajā pasaulē parādītos tieši tur, kur es uzspiedu GUI nepagrieztajā pasaulē. Zinu, ka tas ir elementaars matemaatikas uzdevums ar gatavaam formulaam:
jaunais_x = vecais_x*cos(rotangle) + vecais_y*sin(rotangle)
jaunais_y = - vecais_x*sin(rotangle) + vecais_y*cos(rotangle)
kur tad nu man vajadzeetu njemt kursora koordinaates un pagriezt taas taa, lai objekts nonaaktu tur, kur ir kursors, nevis pa rinkja liiniju nobiidijies par lenki rotangle.
Ļoti vienkāršs uzdevums, bet es nekādi netieku ar jamo galā jau kādu laiciņu. Skatos un brīnos. Vai es kaut ko palaižu garām? Kodu nepubliskošu, jo no tā jēga minimāla, ir runa par koncepciju. _________________ ...un es uzskatu, ka Fallout ir etalons |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Wed Mar 08, 2006 1:41 pm Post subject: |
|
A vai tev nevajag griezt uz otru pusi gadījumā? Tb tais formulās likt -rotangle.
Var jau protams izmantot paša ogl iespējas:
Code: | glPushMatrix();
glLoadIdentity();
glRotatef(-rotangle, 0, 0, 1);
glGetFloatv(GL_MODELVIEW_MATRIX, matrica);
glPopMatrix(); |
|
|
Back to top |
|
|
Kamazs Guru
Joined: 17 Jan 2003 Posts: 829 Location: The glorious ancient city of Loja
|
Posted: Thu Mar 09, 2006 1:17 am Post subject: |
|
OK, dienu nomocījies, es atradu kļūmi.
Tagad, bērnie, ielāgojiet, sin() un cos() funkcijas grib argumentus radiaanu (graadi *M_PI/180) formaa, pat ja OGL grib graados. Un tas nekas, ka jūs to zināt. Es arī zināju un izmantoju, bet šodien, lūk, piepeši biju svēti pārliecināts, ka tie ir grādi.
Ja jūs zinātu, kā es ...blin...AAAAAAARGHHHHH _________________ ...un es uzskatu, ka Fallout ir etalons |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu Mar 09, 2006 1:32 am Post subject: |
|
:) Man arī ir līdzīgi gadījies. |
|
Back to top |
|
|
AnetiX Indago Uzvarētājs
Joined: 05 Jun 2003 Posts: 573
|
Posted: Thu Mar 09, 2006 2:10 pm Post subject: |
|
heh, man vienmēr iznāk ļoti daudz laika veltīt lai salāgotu radiānus un grādus, jo citur nepieciešami grādi, citur radiāni... psc... kāpēc nevar šamie ņemt vienu mērvienību? Teiksim, anetiksas, kas būtu 3/1 grādu lielumā. Attiecīgi, visā kodā tiktu izmantotas anetiksas un nekādu problēmu nebūtu ar grādiem un radiāniem.
Kas pievienojas? _________________ Miljons iemeslu, kāpēc Latvija ir labākā valsts pasaulē
http://www.millionreasonswhylatviaisthebestcountryintheworld.com |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu Mar 09, 2006 3:25 pm Post subject: |
|
Vai 3 dalīts ar 1 nav 3?
Un vēl tad jau pie reizes visus metrus un kilometru un jūdzes aizstāt ar astronomisko vienību :) Kā arī kautko ar kilogramiem un mārciņām iesākt.. |
|
Back to top |
|
|
eXeM
Joined: 22 Mar 2005 Posts: 155 Location: Ape
|
Posted: Thu Mar 09, 2006 3:42 pm Post subject: |
|
Vispaar jau naw grruti tak paarveidot uz sawu eertaako vieniibu kautvai svaru uz vienu vienotu smgugrami |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|