Pelisivut.org keskustelu - Pelit Pelinteko ja muu jutustelu
Toukokuu 23, 2012, 17:32:48 *
Tervetuloa, Vieras. Ole hyvä ja kirjaudu tai rekisteröidy.
Jäikö aktivointi sähköposti saamatta?

Kirjaudu käyttäjätunnuksen, salasanan ja istunnonpituuden mukaan
Uutiset: Nurkan luontokuvat: http://www.nurkka.org nyt blogimuodossa.
 
   Etusivu   Ohjeet Haku Kirjaudu Rekisteröidy  
Sivuja: [1]
  Tulostusversio  
Kirjoittaja Aihe: Kahden pisteen välinen kulma  (Luettu 2145 kertaa)
Jarzka
Jäsen300
***
Viestejä: 473



Profiili WWW
« : Heinäkuu 12, 2007, 01:11:26 »

Eli yksinkertaisesti onko mitään kaavaa tai keinoa laskea kahden objektin välistä kulmaa ilman extensioneja.
tallennettu

Taimou
Foorumin kauhu
Valvoja
*****
Viestejä: 714


Seuraava..


Profiili
« Vastaus #1 : Heinäkuu 12, 2007, 02:50:45 »

Eikös kulmaan tarvita kolme pistettä? vai olenko ymmärtänyt jotain väärin.
tallennettu

I'm baaaaaaaaaaaaaaaaaaaaaaaaaaaack..!
Chaos
ProJäsen
*****
Viestejä: 466


Koiraleuka


Profiili WWW
« Vastaus #2 : Heinäkuu 12, 2007, 09:36:52 »

^ Kulmaan tarvitaan kolme pistettä (kai, en ole hyvä matikassa), mutta kahden pisteen välisen kulman laskemiseen tarvitaan kai vain ne kaksi pistettä. Varma en kyllä ole.

Itse en tiedä mitään muuta kaavaa, kuin juuri Advanced Direction-objektin komento. Luultavasti ilman extensioneja tarvitsisi jonkinlaista eventtikasaa, joten olisi varmaan helpompi vain käyttää extensionia.
tallennettu

~Nykyinen nimimerkki Raverider~
MJK
Jäsen100
**
Viestejä: 298


Profiili WWW
« Vastaus #3 : Heinäkuu 12, 2007, 09:52:09 »

Eikös tuon voi ihan trigonometrisilla funktiolla tehdä? Siniä, cosinia ja tangenttia yhdistelemällä.. esim.

ATan(Abs(Y( "Active 2" )-Y( "Active" ))/Abs(X( "Active 2" )-X( "Active" )))
tallennettu
Daiz
Jäsen100
**
Viestejä: 171


Do the moonwalk!


Profiili WWW
« Vastaus #4 : Heinäkuu 12, 2007, 10:54:38 »

Ainakin tämä kolmen eventin ja kahden valuen menetelmä on MMF2:lla toimivaksi testattu:

Always : Set Value A to ASin((Y( "Active 1" )-Y( "Active 2" ))/Sqr((((X( "Active 2" )-X( "Active 1" ))) pow 2)+((Y( "Active 1" )-Y( "Active 2" )) pow 2)))
X("Active 2") >= X("Active 1") : Set Value B to Value A
X("Active 2") < X("Active 1") : Set Value B to 180 - Value A

Value B = haluttu kulma

EDIT: Tässä siis varmasti haetaan kulmaa väliltä 0-360 astetta, jolloin MJK:n menetelmä ei tuota haluttua lopputulosta. Ylläoleva menetelmä palauttaa kulman väliltä -90 - 270, mikä kyllä toimii MMF2:n Set Angle -komennolle annettuna, mutta jos haluaa saada tasan tuolta 0-360 väliltä, voi lopputulokseen vielä lisätä 90.
« Viimeksi muokattu: Heinäkuu 12, 2007, 11:00:09 kirjoittanut Daiz » tallennettu

09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
------------------------------------------------
Nikujin Speedrun, 3:38 ilman kuolemia
http://www.youtube.com/watch?v=3jAcq2g5DFc
Jarzka
Jäsen300
***
Viestejä: 473



Profiili WWW
« Vastaus #5 : Heinäkuu 12, 2007, 17:11:33 »

Mjoo itselleni kyllä riittäisi ihan 32 suuntaa, mutta sehän onnistuu varmaan kun jakaa tuon tuloksen luvulla 11,25.

Ja tosiaan kyllä kahden pisteen välisen kulman voi laskea, vaikka sitä varsinaista kulmaa ei kuitenkaan siinä näy Tongue Ajatellaan vaikka kompassia. Sen nuoli osoittaa aina johonkin suuntaan ja se suunta on välillä 0-360 astetta.
tallennettu

Sivuja: [1]
  Tulostusversio  
 
Siirry:  

MySQL pohjainen foorumi PHP pohjainen foorumi Powered by SMF 1.1.15 | SMF © 2006-2008, Simple Machines Validi XHTML 1.0! Validi CSS!