Radijani, atan2 i ostalo.

Sve vezano u matematiku & fiziku koja zaluta u vaš projekt.
Post Reply
User avatar
MaracKoMarac
Posts: 884
Joined: Fri Jul 31, 2009 9:09 am
Smallest prime number bigger than 20: 23
Location: Zagreb
Contact:

Radijani, atan2 i ostalo.

Post by MaracKoMarac » Thu Jul 29, 2010 5:21 pm

Dakle, htio bih da mi netko objasni ove stvari. Naime, iako ih koristim u igri, nemam pojma što su i kako rade. Na primjer, igrač na koordinatama (0,0) treba biti okrenut prema znaku (50,50).
When no one dares to whisper, shout!
Blog

User avatar
Danijel Korent
Romulanski špijun na Zemlji
Posts: 1583
Joined: Fri Sep 05, 2008 12:35 pm
Smallest prime number bigger than 20: 23
Location: Njemacka
Contact:

Re: Radijani, atan2 i ostalo.

Post by Danijel Korent » Thu Jul 29, 2010 5:36 pm

Vec sam bio stavio sliku ali evo jos jednom:

Image

Ako imamo neku tocku i igrac treba biti okretnuti prema njoj, normalno trebamo doznati za koliko stupnjeva da zarotiramo igraca. Da bi se dobio taj kut koristi se funkcija atan2(x, y)

Kao argument se daje samo jedna tocka, a funkcija vraca kut izmedu x-osi i linije od sredista koordinatnog sustava (0, 0 koordinate) do tocke koja je stavljena kao argument.

Znaci na ovoj slici gore, atan2 za koordinate x, y vraca onaj crveno obojani kut. Obicno vrati vrijednost u radijanima, koja je jos samo jedna mjerna jediniza za kut uz stupnjeve. Kut od 360 stupnjeva u radijanima iznosi 2* pi, iliti 6.28.
a.k.a. Koki

User avatar
MaracKoMarac
Posts: 884
Joined: Fri Jul 31, 2009 9:09 am
Smallest prime number bigger than 20: 23
Location: Zagreb
Contact:

Re: Radijani, atan2 i ostalo.

Post by MaracKoMarac » Thu Jul 29, 2010 5:52 pm

Hvala na odgovoru ^^
Više mi je trebalo objašnjenje za radijane nego za atan2.
When no one dares to whisper, shout!
Blog

User avatar
Luka
Posts: 1384
Joined: Tue Aug 26, 2008 3:32 pm
Smallest prime number bigger than 20: 23

Re: Radijani, atan2 i ostalo.

Post by Luka » Thu Jul 29, 2010 6:01 pm

Trigonometrija je (tj. onoliko koliko je potrebno za ovo) jako jednostavna...

Image

Trigonometrijske funkcije sinus, kosinus, tangens (i ostale) obično koristiš kad u problemu kojeg rješavaš imaš neki od ovih pojmova: omjer, duljina stranice, kut.

Funkcije sinus, kosinus i tangens (sin, cos, tg (ili češće "tan" umjesto "tg")) su funkcije koje primaju neki ne-pravi kut u trokutu, a vraćaju omjer stranica trokuta koje zatvaraju taj kut. sin vraća omjer nasuprotne katete i hipotenuze. cos vraća omjer priležeće katete i hipotenuze. tan vraća omjer nasuprotne i priležeće katete. Redom, za svaki ne-pravi kut (2 su takva, A i B) na slici:
sin(A) = a / h
cos(A) = b / h
tg(A) = a / b
sin(B) = b / h
cos(B) = a / h
tg(B) = b / a

Postoje i obrnute funkcije, koje za dani omjer daju kut. To su "arkus" funkcije, npr. asin, acos, atan. Recimo da je gornja točka A u središtu koord. sustava, a točka B točka prema kojoj se igrač želi okrenuti. Potrebno je poznavati koordinate od B, neka su one jednake onima u tvom primjeru: (50, 50). (dakle, trokut na slici treba zrcaliti po ordinati, kako bi B došao desno od A) Za te koordinate, na slici će duljina b biti 50, kao i duljina a. Trebamo dobiti kut uz A, a imamo a i b. U gornjem popisu, tim nepoznanicama odgovara 3. redak, pa je potrebno iskoristiti funkciju atan (atg), i to u obliku kut = atan(a / b).

Ne znam koja je definicija atan2 funkcije, al vjerojatno ti ni ne treba... (preletom po tekstu na wikipediji, pretpostavljam da rješava probleme kvadranata, predznaka i sl. zbog kojih bi eventualno morao dodavati/oduzimati stupnjeve rezultatu običnog atana).

Vidim da je koki već odgovorio, ali previše sam dosad napisao pa svejedno postam ovo. :P
  • You know your project is in trouble when..
    ...when you wonder if you could optimize your fps counter function in order to gain extra fps...
    ...and you double your fps doing so.

User avatar
MaracKoMarac
Posts: 884
Joined: Fri Jul 31, 2009 9:09 am
Smallest prime number bigger than 20: 23
Location: Zagreb
Contact:

Re: Radijani, atan2 i ostalo.

Post by MaracKoMarac » Thu Jul 29, 2010 6:12 pm

Hvala i tebi :D
Osjećam se nekako pametnije :P
When no one dares to whisper, shout!
Blog

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest