![]() |
Interpolation von Flächen (3D)
Hi,
Ich versuche gerade aus einzelnen gegebenen Punkten (x,y,z) die z-Werte zu beliebigen (x,y)-Werten zu interpolieren. Ich habe beim Googlen viel über Splines-, Bezier- und B-Spline-Flächen gefunden, aber wenn ich das richtig verstanden habe, dann geht bei denen die berechnete Fläche nicht durch die Messpunkte sondern wird nur in Richtung der Punkte "gezogen". Dann wären da noch die Bezier-Spline-Flächen, die - soweit ich das verstanden habe - durch die Messpunkte gehen. Das Problem dabei ist aber, dass die Messpunkte in einem rechteckigen Raster vorliegen sollten. Meine Messpunkte sind aber zufällig (*) auf der Fläche verstreut. Hat jemand ein Stichwort zum googlen für mich? (*) genaugenommen wird eine Fläche durch mehrere Polygone begrenzt und die Eckpunkte dieser Polygone haben Höheninformationen |
Re: Interpolation von Flächen (3D)
wenn ich das richtig verstehe, dann hast du ein set von punkten, dir irgendwo im raum stehen.
- soll die fläche plan sein? dann ist es so, dass diese nicht unbedingt die punkte berührt, es sei denn die punkte liegen genau auf einer ebene. - kann die fläche kanten haben? dann könntest du einzelne flächen (dreiecke) konstruieren, die jeweils durch drei punkte definiert sind. - soll die fläche durch die punkte gehen und keine kanten haben? dann könntest du die fläche z.b. mit der finiten-elemente-methode berechnen |
Re: Interpolation von Flächen (3D)
Hi ibp. Danke für die schnelle antwort. Ich muss gleich weg deshalb nur ganz kurz:
Ja, die Punkte stehen irgendwo im Raum. Nein, die Fläche soll nichtr plan sein, sondern durch alle Punkte gehen. Kanten wären nicht so schön aber wenn es nicht anders geht (oder zu kompliziert wird), ists auch ok. Ich werd mal nach den finiten Elementen suchen |
Re: Interpolation von Flächen (3D)
im endeffekt ist das nichts anderes als die lösung einer differetialgleichung mit randbedingungen, wobei die berechnung sich eben auf endlich viele elemente beschränkt.
...du könntest auch nach dem "minimalflächenproblem" suchen... |
Re: Interpolation von Flächen (3D)
Wenn Du Dich in OpenGL einarbeiten willst, da kann man NURBS und SPLINES von der GraKa berechnen lassen (incl. Beleuchtung und so).
|
Re: Interpolation von Flächen (3D)
![]() |
Re: Interpolation von Flächen (3D)
Das Problem bei diesem Tutorial ist auch wie bei B-Splines, Slpine-Flächen usw., dass die Fläche nicht durch meine Punkte durchgeht sondern nur von ihnen angezogen wird.
Dann sollte ich vielleicht noch sagen, dass ich die Fläche nicht zeichnen will, sondern nur die z-Werte zu bestimmten Punkten berechnen will. |
Re: Interpolation von Flächen (3D)
Beziers ziehen deine Punkte an, Splines gehen durch.
Aber wenn dus nicht zeichnen willst helfen dir die Evaluators natürlich nicht. |
Re: Interpolation von Flächen (3D)
@snuff:
Splines wären auch das womit ich das Problem in 2D lösen würde. Spline-Flächen haben diese Eigenschaft aber leider nicht mehr. @ibp: Differentialgleichungen von n Polynomen mit je 2 Unbekannten sind leider nicht mein Spezialgebiet. Könntest du mir da noch etwas weiterhelfen? Bei Minimalflächen und FEM finde ich auch nur Seiten, die über meinen mathematischen Horizont gehen |
Re: Interpolation von Flächen (3D)
hi flogo,
erklär mir doch mal bitte genauer, was du vor hast, welche werte du benötigst, welches ziel du dabei verfolgst, randbedingungen für die fläche etc... .. kurz "gib mir input!" :wink: |
Re: Interpolation von Flächen (3D)
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. |
Re: Interpolation von Flächen (3D)
das hört sich eher nach
![]() |
Re: Interpolation von Flächen (3D)
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. |
Re: Interpolation von Flächen (3D)
Liste der Anhänge anzeigen (Anzahl: 1)
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. |
Re: Interpolation von Flächen (3D)
Liste der Anhänge anzeigen (Anzahl: 1)
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
|
Re: Interpolation von Flächen (3D)
Liste der Anhänge anzeigen (Anzahl: 1)
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! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz