AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

Ein Thema von ISAS · begonnen am 7. Jan 2005 · letzter Beitrag vom 10. Jan 2005
Antwort Antwort
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#1

Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 7. Jan 2005, 20:11
Arbeite gerade an einem 3D-Programm. Will einen Würfel in 3D darstellen, aber das Problem ist das Darstellen. X,Y,Z beim Transformieren, Rotieren, etc. auszurechnen ist kein Problem mit der Einheitsmatrix. Nun muss der Würfel aber auch korrekt dargestellt werden. Orthogonal matrix heisst glaub ich die Lösung . Hab aber nichts brauchbares bzw. verstehbares gefunden , deswegen poste ich hier. Hoffe, dass einer einen guten Link hat oder brauchbares Material oder kann es mir vielleicht gleich hier erklären.

Thnx, robs!
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 7. Jan 2005, 20:19
http://de.wikipedia.org/wiki/Projektion_%28Geometrie%29
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#3

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 8. Jan 2005, 11:13
Habe auf dem Taschenrechner nun ein Programm geschrieben, der einen WÜrfel "richtig" darstellen soll, aber das passt nicht. Es sieht schon richtig aus, aber es gibt 2 Sachen, die falsch sind.

Bei dem Bild im Anhang kann man das sehr gut erkennen, was falsch ist. Habe das mit Paint gezeichnet, aber so sieht es auch auf dem Taschenrechner aus.

Falsch ist:
1: Egal von wo ich das Bild anschaue. Die vordere Fläche ist immer gleich gross. Also unabhängig von der Z-Koordinate des Fluchtpunkt.

2: Wenn ich einen Würfel schräg anschaue, dann gibt es eigentlich keine quadratische Fläche mehr. Die vordere und die hintere Fläche bleiben aber quadratisch.

3. Wenn ich den Fluchtpunkt sehr weit rechts/links vom Würfel positioniere, dann ist der Würfel kein Würfel mehr sondern ein Quader, der sehr weit nach hinten geht.
Miniaturansicht angehängter Grafiken
bild1_242.jpg  
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 8. Jan 2005, 11:33
ich denke du solltest nicht die "kamera" verschieben sondern das objekt, das du anschaust und projezierst.
das koordinatensystem bleibt dabei auch gleich.
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#5

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 8. Jan 2005, 13:40
Stimmt, danke erstmal!

Hab das Programm nun mit Delphi geschrieben. Hab aber noch ein Problem. Wenn ich den Würfel nach rechts bewege, dann ändert sich die x Koordinate um i-Einheiten. Wenn man nun aber logisch denkt, muss sich ja auch die z-Koordinate verändern. Die eine muss mehr nach hinten, die andere mehr nach vorn. Hab das nun mit Matrizen versucht, aber wie sich herausstellte, verändern sich beim Bewegen auch nur die x-koordinate. Vielleicht weisst du das auch noch. Geb das Programm dazu! Wie man sieht, ist es dann kein Würfel mehr sondern irgendeine Figur.

PS: Beim Programm kann man nur die rechte Pfeiltaste drücken!!!
Angehängte Dateien
Dateityp: exe 3d_107.exe (335,5 KB, 55x aufgerufen)
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#6

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 8. Jan 2005, 17:39
Also, skalieren und rotieren funktionieren perfekt!

Das einzige Problem hab ich nur mehr mit dem Projekt, was ich oben dazugegeben habe. Dann wäre meine erste "Engine" fertig. Vielleicht kann mir einer Helfen.
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#7

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 9. Jan 2005, 16:08
Hab nun nen Quellcode für ne Perspektivische Matrix. Poste hier mal den Quellcode. Irgendwie funktioniert das bei mir nicht. Egal, welche koordinaten ich eingebe. Weiss vielleicht einer, was falsch ist?

Delphi-Quellcode:
procedure TForm1.Perspektive;
var left,right,bottom,top,zNear,zFar:real; //Keine Ahnung, wieso 6 Variablen. Schätze, dass das die Kamerapos is
begin

left:=-2.0;
right:=2.0;
bottom:=-2.0;
top:=2.0;
zNear:=30.0;
zFar:=70.0;

m[1,1]:=(2*zNear)/(right-left);
m[2,1]:=0.0;
m[3,1]:=(right+left)/(right-left);
m[4,1]:=0.0;

m[1,2]:=0.0;
m[2,2]:=(2*zNear)/(top-bottom);
m[3,2]:=(top+bottom)/(top-bottom);
m[4,2]:=0.0;

m[1,3]:=0.0;
m[2,3]:=0.0;
m[3,3]:=-(zFar+zNear)/(zFar-zNear);
m[4,3]:=-(2*zFar*zNear)/(zFar-zNear);

m[1,4]:=0.0;
m[2,4]:=0.0;
m[3,4]:=-1.0;
m[4,4]:=0.0;

PKoordinaten; //Punkt wird gezeichnet
end;
PS: Habe das zuerst mit dem FLuchtpunkt von supermuckl gemacht. Dort funktionierts. Setze ich nun die pers. Matrix ein, schaut das irgendwie aus. Weiss nichtmal, ob das richtig ist. Hab einen Button gemacht, der dann immer die Den Punkt setzt. Irgendwann ises aber weg.
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#8

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 9. Jan 2005, 20:30
Auf Wunsch gebe ich hier den ganzen Quellcode preis. Es ist auch möglich auf einen Fluchtpunkt umzustellen.
Angehängte Dateien
Dateityp: zip unit1_540.zip (192,0 KB, 36x aufgerufen)
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
wnew

Registriert seit: 8. Aug 2004
2 Beiträge
 
#9

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 9. Jan 2005, 22:35
http://www.weltbild.de/artikel.php?m...er=3487683&r=4

http://bilder4.weltbild.de/kno/3487/3487683z.jpg
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#10

Re: Projektionsmatrix - 3D Bild in 2D darstellen, aber wie?

  Alt 10. Jan 2005, 20:05
Das wird, schätze ich mal, der letzte Beitrag zu diesem Thema von mir sein.

Wenn man sich den letzten Quellcode von mir downloaded, dann hat man eigentlich schon eine fertige Enginge, aber die Perspektivische Matrix fehlt noch. Also eine Matrix, die einen 3D-Punkt in 2D darstellt.


Gibt es hier keinen Programmierer, der schon mal eine kleine Engine programmiert hat und sich das anschaun kann oder mir vielleicht den Delphicode dafür geben könnte. Eigentlich macht doch jeder so eine Engine einmal, der Informatik studiert oder studiert hat. Hoffe, dass sich jemand meldet.
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 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