Autor Beitrag
ISAS
Hält's aus hier
Beiträge: 6


D4
BeitragVerfasst: So 09.01.05 17:55 
Habe schon wo anders gepostet. Deswegen geb ich hier den Link rein.

www.delphipraxis.net...tellen+aber+wie.html

Hoffe, dass mir einer helfen kann. Bin wirklich ganz, ganz, ganz kurz davor, meine eigene Engine zu proggen. :wink:
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Mo 10.01.05 12:47 
Geht es dir darum 3D-Punkte in 2D-Punkte umzwandeln?

Wenn ja, dann probier mal:

x2d:=x3d/z3d
y2d:=y3d/z3d

Bin mir nicht ganz sicher, ob das so stimmt, muss deshalb nochmal nachgucken.

_________________
Linux und OpenSource rulez!
Phobeus
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1280

Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
BeitragVerfasst: Mo 10.01.05 15:28 
Mir fällt es schwer zu glauben, dass Du da nichts brauchbares gefunden hast. Liegt vielleicht daran, dass die Frage darauf deutet, dass Du selbst nicht genau weißt, wonach Du suchst. Aber meine Glaskugel zeigt mir Ausnahmsweise doch mal was ;) So wie ich Dich verstehe versuchst Du ja ledglich einen 3D-Körper zweidimensional darzustellen. Die Lösung dafür heißt in der Tat orthogonale Projektionsmatrix und sollte hier recht gut beschrieben sein:
www.delphigl.com/scr...pengl2d&action=2

_________________
"Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
ISAS Threadstarter
Hält's aus hier
Beiträge: 6


D4
BeitragVerfasst: Mo 10.01.05 16:33 
1. Sourcehunter:

Nein, das geht nicht. Der code für das darstellen von 3D in 2D ist folgender:

fx, fy, fz sind die Koordinaten eines Fluchtpunktes.

ausblenden Delphi-Quelltext
1:
2:
Px':=trunc(((Px-fx)*fz)/(fz-Pz)+fx);
Py'
:=trunc(((Py-fy)*fz)/(fz-Pz)+fy);




2. Phobeus:

Mit OpenGL kann ich nichts anfangen. Was ich will, is ja selbst eine Engine zu programmieren. Theoretisch könnte ich das auch ohne DelphiX programmieren, sondern nur mit dem stinknormalen Delphi. Also brauche ich den code für die projektive Matrix, der auch funktioniert. Ich muss ja mit der Einheitsmatrix bzw Matrizen arbeiten.

(1,0,0,0)
(0,1,0,0)
(0,0,1,0)
(0,0,0,1)
Phobeus
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1280

Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
BeitragVerfasst: Mo 10.01.05 17:31 
Auch dabei wird die OpenGL weiterhelfen. Gerade im Redbook sind teilweise schon einige der dabei verwendeten Matrizen beschrieben. Ich würde also durchaus einen Blick darauf empfehlen ;)

_________________
"Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
sourcehunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 482

Win XP | Suse 10.1
Delphi 2005 Pers.
BeitragVerfasst: Do 13.01.05 11:50 
Aber das Prinzip ist das selbe. :wink:

//Edit: Ich hab übrigens nochmal nachgeguckt und auch den selben Code.

_________________
Linux und OpenSource rulez!
Das_Hirn!
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 27.01.05 14:31 
Um das ganze hier nochmal aufzugreifen:
Ich hab zwar nix mit Delphi zu tun hab das Problem aber an anderer Stelle und brauche dafür auch eine Lösung!

@ISAS
Du sagst die Koordinaten eines Fluchtpunktes sind fx, fy, fz.
Wenn ich die ganze Sache zweidimensional darstellen will... dann müsste ich doch diesen Fluchtpunkt bereits umrechnen?
Ich meine... wie kann der Fluchtpunkt 3 Koordinaten haben (in echt liegt er doch im Unendlichen??)

@All
Ich habe auf meiner Zeichenfläche von mir aus den Ursprung des Koordinatensystems auf Pixel: x = 300 y = 300 gelegt.
Den Fluchtpunkt lege ich von mir aus auf x = 400, y = 400.

Damit hätten wir eine Achsendarstellung der z-Achse von einem 45 Grad-Winkel. Diese Achse würde doch dann im Fluchtpunkt bei 400,400 enden!?.

Wie würde ich jetzt einen Punkt P(3,2,4) beispielsweise auf diesen Fall gesehen projezieren???

Das ist mir immer noch nicht klar...

würde mich um eine weitere Erfklärung freuen (brauch ich dringend)!

cu
Das_Hirn!