Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Direct3D: relative 2D Koordinaten bestimmen (für Radar) (https://www.delphipraxis.net/144376-direct3d-relative-2d-koordinaten-bestimmen-fuer-radar.html)

Zacherl 6. Dez 2009 14:52


Direct3D: relative 2D Koordinaten bestimmen (für Radar)
 
Hey,

ich versuche grade ein kleines Radar für ein DirectX Spiel zu programmieren. Ich habe die Koordinaten der Spieler, meine eigene Position und meinen View Vector. Leider kenne ich mich mit den ganzen DirectX Funktionen noch nicht wirklich gut aus und finde auch keinen Ansatz:

Die Map dreht sich so, dass meine Blickrichtung immer nach Norden zeigt. Zudem steht mein eigener Spieler immer in der Mitte der Radarkarte.

Wie kann ich nun die X, Y, Z Koordinaten Vektoren der anderen Spieler auf die 2 dimensionale Karte (Vogelperspektive) projizieren und dabei auch meinen eigenen Blickwinkel mit einbeziehen?

Viele Grüße
Zacherl

Medium 6. Dez 2009 22:39

Re: Direct3D: relative 2D Koordinaten bestimmen (für Radar)
 
Du hast also bereits deine Position in "Weltkoordinaten" (P0) und den Winkel zwischen der Blickrichtung und der "Welt-Z-Achse" (alpha), richtig?

Seien die Weltkoordinaten der anderen Spieler mal Pn, dann bekommst du deren Position relativ zu deiner einfach mit Pn-P0=Vp. Wenn die 2D-Koordinate C das Zentrum deiner Map ist, sind die anderen Spieler bei C+(Vp*z)=Sn einzuzeichnen, wobei z ein beliebiger Zoomfaktor wäre. Die Y-Koordinate von Vp ignorierst du einfach, und setzt an diese Stelle die Z-Koordinate ein, die (ungedreht) quasi der Y-Koordinate in 2D entspricht. Jetzt musst du nur noch alle Sn um Alpha um das Zentrum C drehen, und hast die Blickrichtung des Spielers dabei.
Das hat mit DirectX jetzt auch herzlich wenig zu tun, und ist erstmal einfach nur lineare Algebra ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz