AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Algorithmus zur Umrechnung von 3D in 2D Punkte ??
Thema durchsuchen
Ansicht
Themen-Optionen

Algorithmus zur Umrechnung von 3D in 2D Punkte ??

Ein Thema von erniepb · begonnen am 9. Jun 2002 · letzter Beitrag vom 12. Jun 2002
Antwort Antwort
erniepb

Registriert seit: 8. Jun 2002
Ort: Berlin
96 Beiträge
 
Delphi 7 Enterprise
 
#1

Algorithmus zur Umrechnung von 3D in 2D Punkte ??

  Alt 9. Jun 2002, 18:45
Hallöchen ..
Also gleich zu meinem Problem .. ich habe eine "Tabelle" mit den Koordinaten von Punkten im 3D-Raum (kartesisch) .. hat jemand eine Idee wie ich die Abildungskoordinaten der 3D-Koordinaten auf ein Ebene berechne, die nicht plan-symmetrisch zu einer der koordinatenachsen des 3D Koordinatensystemes ist??

Ich verzweifle momentan so n bisschen dadran .. wär echt toll wenn mir jemand helfen könnte .. Literatur zum Nachlesen wär da auch nicht schlecht .. muss ja nicht mal der code dafür sein .. was mir eigentlich auch lieber wär .. Danke !!
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2
  Alt 10. Jun 2002, 10:43
Ich würde irgendwie so daran gehen:
1. Normalenvektor zur Ebene berechnen.

Jetzt kommt's drauf an, ob du perspektivische Abbildung willst (a) oder nicht (b).

FÜR JEDEN PIXEL {
ENTWEDER
2a. Definiere den Beobachterpunkt hinter der Ebene (in der Mitte, auch wenn eine Ebene keine Mitte hat (c; ). Ziehe jetzt vom Beobachterpunkt zu jedem Punkt, den du zeichnen willst, eine Gerade. Der Schnittpunkt der Geraden mit der Ebene ergibt den projizierten Punkt.
ODER
2b. Ziehe vom zu zeichnenden Punkt eine Gerade mithilfe des Normalenvektors der Ebene. Wiederum ergibt der Schnittpunkt der Geraden mit der Ebene den projizierten Punkt.
3. Zeichne den Punkt.
}

So, und wie du wolltest hast du kein Byte Code bekommen ;c)
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
erniepb

Registriert seit: 8. Jun 2002
Ort: Berlin
96 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 10. Jun 2002, 16:18
ja danke !! so ne idee ist mir letzte nacht auch noch gekommen.. naja da fehlt mir aber noch n bisschen Hintergrundwissen bezüglich der Vektorrechnung aber ich hoffe einfach mal mit n bisschen lesen in so mathebüchern schaft man das schon ganz gut ..
zu dem perspektivisch kannst du da noch n bisschen was sagen?? da hat mit da irgendwie ne gehirnwindung gefehlt..

Aber auf alle Fälle erstmal schon ganz doll viel danke..
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4
  Alt 10. Jun 2002, 16:50
Das folgende Bild gibt die mathematische Grundlage zur Umrechnung von 3D nach 2D.

http://www.gatenetwork.com/delphi-sa...ge-monitor.gif

Ich habe mal ein Programm getippt, welches einen/zwei Drahtgitter-Würfel in Delphi/Assembler animiert. Recht primitiv, dürfte aber weiterhelfen. Ich werde mal danach suchen.

Erinnere mich dran, wenn ich es vergessen sollte.

P.S. Und da war der erste Beitrag da...
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#5
  Alt 11. Jun 2002, 17:44
sakuras schönes Bild sagt eigentlich alles zur Perspektive. Im Grunde ist es auch genauso wie isometrisch, nur dass der Richtungsvektor der Schnittgeraden bei Isometrie gleich dem Normalenvektor der Ebene ist, und bei Perspektive ist gleich dem Vektor zwischen zu zeichnendem und Augenpunkt.
Wie auf dem Bild ist es auch mit Strahlensatz möglich, so ist schließlich auch D**M (indiziert (c; ) entstanden, soweit ich weiß.
Aber ich hab' in der Oberstufe (die ich endlich hinter mir hab' - heute war Abistreich und wird Lichtungsparty sein) soviel Vektormathematik gehabt, dass es mir persönlich fast einfacher scheint, auch wenn die Mathematik hinterm Strahlensatz sicher leichter nachzuvollziehen ist. Aber egal, Vektoren sind cool 8) und vergiss nicht, dass du beim Strahlensatz, da du eine "krumme" Ebene verwendest, auch noch die Entfernung vom Punkt zur Ebene ausrechnen musst, womit wir - schwupps - wieder beim Normalenvektor wären ;c)

Aber egal, jetzt weißt du bestimmt genug, um es so zu machen wie du willst ;c)
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
erniepb

Registriert seit: 8. Jun 2002
Ort: Berlin
96 Beiträge
 
Delphi 7 Enterprise
 
#6
  Alt 11. Jun 2002, 22:45
jepp .. jetzt weiß ich größten teils bescheid ..
Danke für die Hilfe !!!!!
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7
  Alt 12. Jun 2002, 09:24
Hi erniepb,

ich bin einfach noch nicht dazu gekommen den Quellcode aufzugabeln. Ich habe es aber auch nicht vergessen
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  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 16:50 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