AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Interpolation von Flächen (3D)
Thema durchsuchen
Ansicht
Themen-Optionen

Interpolation von Flächen (3D)

Ein Thema von Flogo · begonnen am 27. Jul 2006 · letzter Beitrag vom 31. Jul 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#11

Re: Interpolation von Flächen (3D)

  Alt 28. Jul 2006, 12:55
Es geht um Z-Werte in einem 2D-Spiel. Man kann sich dabei in einem festen 2D-Bild bewegen (typisches Point&Click) also die Spielfigur läuft auf den Punkt zu auf den geklickt wird. Jetzt soll die Figur aber nach "hinten" hin kleiner werden. mit anderen Worten: Es muss eine nicht sichtbare Z-Achse geben. Natürlich könnte man einfach eine Formel angeben, mit der man den y-Wert linear in einen z-Wert umrechnet "Je weiter hinten desto kleiner". Das ist aber nicht ganz korrekt und wirkt bei manchen Bildern ziemlich komisch. Es könnte ja zum Beispiel auf der gleichen Höhe ein großer Platz im Vordergrund oder ein Weg der sich bis in den Horizont schlängelt sein. Außerdem können die Bilckwinkel (und damit die Fluchtpunkte) der Bilder verschieden sein oder Hügel im Bild vorkommen.
Meine Idee war jetzt der Maske die den begehbaren Bereich definiert z-Werte mitzugeben. Diese Maske besteht aus einem oder mehreren Polygonen. Alles was innerhalb eines Polygons liegt ist begehbar. Mit mehreren Polygonen kann man zum Beispiel aus einem großen Bereich einzelne kleine Flächen "rausschneiden" (zB ein großer Platz in dem in der Mitte ein Brunnen steht)
Jeder Punkt des Polygons könnte einen z-Wert besitzen.
Bis jetzt habe ich versucht aus den Abständen zu allen Punkten den Z-Wert eines beliebigen Punktes zu berechnen (Alle Punkte zählen mit rein je näher ein Punkt ist desto stärker wir er gewichtet). Das führt aber leider zu ziemlich komischen Ergebnissen, deshalb habe ich mich zur Interpolation und Splines durchgefragt.

Also meine Situation (jetzt wieder abstrakt) ist:

Gegeben:
eine Menge von Punkten (x,y,z), die in der x,y-Ebene eine Fläche begrenzen

Gesucht:
zu einem beliebigen Punkt (x,y) innerhalb dieser Fläche: Ein eindeutiger z-Wert, sodass die entstehende Fläche aus (x,y,z)-Punkten möglichst "regelmäßig" ist.

Dieses regelmäßig ist schwer zu beschreiben, aber ich denke aus der Erklärung oben wird halbwegs klar was ich meine. Die Figuren sollen eben einigermaßen gleichmäßig größer werden, wenn sie sich zwischen zwei Punkten bewegen.
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#12

Re: Interpolation von Flächen (3D)

  Alt 28. Jul 2006, 13:10
das hört sich eher nach Fluchtpunktperspektive an. das problem kannst du eigentlich linear lösen!
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#13

Re: Interpolation von Flächen (3D)

  Alt 28. Jul 2006, 13:28
Wenn im Bild ein Hügel ist, dann reicht die Fluchtpunktperspektive leider nicht mehr. Wenn man zum Beispiel ein Bild mit Fluchtpunkt genau auf der Mittelachse hat, würde für alle Punkte, die parallel zur x-Achse liegen, der gleiche Wert rauskommen. Bei einem Hügel, der in der Bildmitte anfängt, stimmt das dann leider nicht mehr.
Oder noch extremer: Eine Leiter, die senkrecht nach oben führt. Die oberste Sprosse kann im Bild genausoweit oben liegen, wie das Ende der Strasse, die neben der Leiter entlangführt.
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#14

Re: Interpolation von Flächen (3D)

  Alt 28. Jul 2006, 13:42
du kannst dir aber mittels der fluchtpunktperspektiven die größen ermittel, wie du das dann positionierst ist dann deine sache!

ich habs dir mal aufgezeichnet....

das schwarze ist dein männchen, in realem weg sind die abstände zwischen den weiteren schwarzen senkrechten gleich. in der perspektive zum fluchtpunkt verhalten sich die größen und abstände entprechend der aufgezeichneten konstruktion. daraus kannst du dir dann dein lineares berechnungsmodell erstellen.
Miniaturansicht angehängter Grafiken
fp_166.png  
  Mit Zitat antworten Zitat
Benutzerbild von Flogo
Flogo

Registriert seit: 24. Mär 2003
Ort: Freiburg im Breisgau
317 Beiträge
 
Delphi 7 Professional
 
#15

Re: Interpolation von Flächen (3D)

  Alt 28. Jul 2006, 17:53
Ich befürchte ich versteh immer noch nicht wie du das meinst. Ich seh das Problem bei Situationen wie die in dem angehängten Bild: Auf dem ersten Bild ist alles wie es sein soll. Auf dem zweiten besitzt der gleiche Punkt aber einen völlig anderen z-Wert
Miniaturansicht angehängter Grafiken
persp_167.jpg  
If one coincidence can occur, then another coincidence can occur. And if one coincidence happens to occur just after another coincidence, then that is just a coincidence.
DNA

www.Anyxist.de
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#16

Re: Interpolation von Flächen (3D)

  Alt 31. Jul 2006, 17:53
hallo,

du brauchst für die richtige berechnung natürlich eine referenz! sonst wird das nix!
als referenz könnte die länge der straße dienen. daraus musst du dir eine gleichung definieren, die dir den entsprechenden verkürzungsfaktor zu lo angibt.

ich hab das mal schematisch im bild grün dargestellt. da wo die grünen linien die blaue schneiden, ist jeweils von grün waagerecht zu grün waagerecht 1 m in real! daran kannst du sehen, dass im perspektivenbild der 1m nicht konstant ist. und daraus solltest du dir einen gleichnung erstellen, die als verküpfung von real zu bild darstellt. dann kannst du dir auch die größen richtig berechnen!
Miniaturansicht angehängter Grafiken
persp_160.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:26 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