Kezdőoldal » Számítástechnika » Programozás » Hogyan határozható meg a...

Progizo kérdése:

Hogyan határozható meg a sebesség és irány alapján a következő hely a térben?

Figyelt kérdés

Sziasztok!

A síkban ugyebár a szinusz és koszinusz függvények segítségével megállapítható, hogy a sebessége és iránya alapján mi lenne a következő X és Y koordinátája egy játékban irányított tárgynak.

De hogyan kell ezt megoldani a térben? Milyen függvény alkalmas a Z irányban a következő koordináta megtalálására?

BlitzBasic3D-vel programozok nemrég, és úgy látszik, ezt a kérdést segítség nélkül képtelen vagyok megfejteni.

Egy olyan repülős játékot írnék, amiben magától menne a repülő előre, és az irányt a nyíl gombokkal lehetne megváltoztatni, mint régen pl. a Descent című játékban, csak itt a repülő nem állhat meg egyhelyben.

A segítő válaszokat előre is köszönöm.



2013. júl. 14. 17:16
 1/10 anonim ***** válasza:

Szerintem:

új pozíció (vektor) = jelenlegi pozíció (vektor) + sebesség (konstans érték) * irány(vektor)

2013. júl. 14. 17:31
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:

"új pozíció (vektor) = jelenlegi pozíció (vektor) + sebesség (konstans érték) * irány(vektor)"


A jelenlegi pozícióhoz a jelenlegi X,Y és Z koordinátapontokból elég a Z értéket megadni? Tehát valahogy így: uj_z_hely=most_z+sebesseg*z_irany ?

2013. júl. 14. 18:04
 3/10 anonim ***** válasza:

Persze, ugyanaz. :)


Amit leírtam vektorműveletekkel, az ekvivalens ezzel a 3-mal együtt:


x = x + sebesség * irány_x

y = y + sebesség * irány_y

z = z + sebesség * irány_z

2013. júl. 14. 18:10
Hasznos számodra ez a válasz?
 4/10 iostream ***** válasza:
Na most mit értesz sebesség és irány alatt? Mert minden ettől függ. A sebesség a fizikában egy vektor, aminek iránya és nagysága van. Nálad ez értelemszerűen nem áll, gondolom a sebesség alatt egy skalármennyiséget értesz ami a sebesség nagysága, irány alatt meg valami mást, de mi az a más?
2013. júl. 14. 20:17
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:

"Amit leírtam vektorműveletekkel, az ekvivalens ezzel a 3-mal együtt:

x = x + sebesség * irány_x

y = y + sebesség * irány_y

z = z + sebesség * irány_z"


Sajnos nem működött, mert pl. ha 0 valamelyik irány, akkor ugyebár 0-val szorozva az elmozdulás is nulla, nekem meg úgy kéne, hogy 0 irány esetén arra mozogjon: pl. ha X felé 0, akkor jobbra.

2013. júl. 15. 11:54
 6/10 A kérdező kommentje:

"gondolom a sebesség alatt egy skalármennyiséget értesz ami a sebesség nagysága, irány alatt meg valami mást, de mi az a más?"


Az irányt le lehet kérdezni a BB3D-ben az EntityPitch#, yaw# és roll# függvényekkel, szóval ez nem gond. Ezek elmozdulási szögeket jelentenek (angle) a megfelelő irányba.

2013. júl. 15. 12:01
 7/10 anonim ***** válasza:

"ha 0 valamelyik irány, akkor ugyebár 0-val szorozva az elmozdulás is nulla"


Hát pont ezt jelenti a 0 irány, hogy arra nincs elmozdulás.


"nekem meg úgy kéne, hogy 0 irány esetén arra mozogjon: pl. ha X felé 0, akkor jobbra."


Akkor hozzáadsz valamennyit a nullához... :D

2013. júl. 15. 12:03
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:

Na szóval, a következő X koordináta így fest:

kovx=x+cos(360-irany)*sebesseg

a következő Y pedig:

kovy=y+sin(360-irany)*sebesseg

Ezek alapján a következő Z irány hogyan, mely szögfüggvénnyel kérdezhető le?

2013. júl. 15. 16:35
 9/10 anonim ***** válasza:
Hát hasonlóképpen, de ott más lesz az irány, értelemszerűen. Mert az szép, hogy van egy irányszöged, de az egy síkban működik. A Z pedig kilép a síkból... ergó valamit változtatni kéne.
2013. júl. 15. 17:32
Hasznos számodra ez a válasz?
 10/10 iostream ***** válasza:
Kérdező, még mindig. A sebesség vektormennyiség, van hossza és iránya. Ha te ezt a hosszt és irányt úgy adod meg, hogy hossz mint egy szám és irány, mint egy szög, akkor 2 dimenziós vektorról beszélsz. A vektor dimenziószáma adja meg, hogy hány adattal tudod megadni a vektort: 2D-s vektorhoz két szám kell, 3D-s vektorhoz három és így tovább. Tökmindegy, hogy hogy reprezentálod, két számból nem fogsz igazi 3D-s vektort előállítani. Kell hogy legyen neked egy másik szöged is valahol.
2013. júl. 15. 17:47
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!