Y-Koordinaten innerhalb eines Polygon

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

stepuh

Betreff: Y-Koordinaten innerhalb eines Polygon

BeitragDi, Dez 07, 2004 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Ich möchte herausfinden welche Y-Koordinate ein Punkt auf der fläche
eines Polygons hat.

Gegeben sind die Koordinaten der 3 Eckpunkte und die Tatsache,
dass das Dreieck ein gleichschänkliges und rechtwinkliges ist.
(also als würde man ein quadrat in 2 dreiecke teilen)

Ich hab nicht wirklich eine Lösung gefunden... ..helfen würde mir auch,
wie man die Y-Koordinate von einem Punkt herausfindet, der auf einem
mesh liegt, wenn man die X und Z koordinate weis.

...thx im Voraus!
http://www.web13.shells24.de/banner.png
 

stepuh

BeitragMi, Dez 08, 2004 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
hat keiner eine idee? Sad
oder ist einfach nur unklar, was ich meine?
http://www.web13.shells24.de/banner.png
 

Klaas

BeitragMi, Dez 08, 2004 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
nach etwas fummelei bin ich drauf gekommen.
also zuerst mußt du die Normale der Ebene die durchs Dreieeck gebildet wird bestimmen.
Dann das punktprodukt mit einem Punkt auf der Ebene (einer der Vertex im Dreieck )bestimmen.
Dann die Ebenengleichung nach der Höhe des neuen Punktes auflösen

px ist hier die x Koordinate des neuen punktes
pz ist hier die z Koordinate des neuen punktes

py ergibt sich dann

hier die Quelle
http://easyweb.easynet.co.uk/~...planes.htm
Code: [AUSKLAPPEN]

                ;Vertex 1 Koordinaten
      x1# = p(1,1)
      y1# = p(1,2)
      z1# = p(1,3)
      
                ;Vertex 2 Koordinaten
      x2# = p(2,1)
      y2# = p(2,2)
      z2# = p(2,3)
      
                ;Vertex 3 Koordinaten
      x3# = p(3,1)
      y3# = p(3,2)
      z3# = p(3,3)
      
      ;--normale des Dreiecks kalkulieren
      nx# = ((y2 - y1) * (z2 - z3)) - ((z2 - z1) * (y2 - y3))
      ny# = ((z2 - z1) * (x2 - x3)) - ((x2 - x1) * (z2 - z3))
      nz# = ((x2 - x1) * (y2 - y3)) - ((y2 - y1) * (x2 - x3))
      
      m# = Sqr(nx^2 + ny^2 + nz^2)
      
      nx# = nx / m
      ny# = ny / m
      nz# = nz / m
      ;---
      
      ;--punkt produkt
      d# = (nx * x1) + (ny * y1) + (nz * z1)
      ;--
      
      ;-- umgestellte Ebenengleichung
      py# = (d# - (nx * px + nz * pz) ) /ny
      ;--


EDIT:
p war ein Array zum testen !!! x1,y1,z1,x2 ... etc. sind natürlich die 3 Vertexkoordinaten des Dreiecks

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group