ich habe ein Polygon mit beliebig vielen Vertices - aber alle liegen auf einer ebene, also sind planar. Zusätzlich habe ich einen Punkt im 3D raum welcher ebenfalls auf dieser ebene liegt - für diesen punkt brauche ich jetzt die UV koordinate die sich durch die UVs des Polygons ergibt.
Wie rechne ich das?
Mein ansatz wäre das Polygon zu triangulieren, dann schauen in welchem triangle der punkt liegt und dann daraus die baryzentrischen koordinaten berechnen.. geht das noch einfacher?
Wie sind den die UV-Koordinaten vergeben worden? Kannst du ein Koordinatensystem für die UV-Koordinaten angeben? Also zwei Achsen und einen Mittelpunkt. Dann ist das nämlich nicht mehr als:
Code:
punkt = punkt - center u = dot(AchseU, punkt) v = dot(AchseV, punkt)
Sowas wie die u-Koordinaten werden in Richtung der Achse U linear größer. Sprich die UV-Koordinaten wurden generiert indem jemand eine irgendwie rotierte und ggf. gestreckt, gestaucht oder gescherte Ebene in den 3D-Raum gelegt hat. Die Achsen sind dann halt die Vektoren die die Ebene aufspannen.
Zusatz: Also falls das nicht klar geworden ist, die Idee ist halt genau die selbe Technik für den einen Punkt zu benutzen die auch für die Vertices des Polygons benutzt wurde. Allerdings ergeben sich bereits bei einem Zylinder Unterschiede zwischen dem Umweg über die Dreiecke und der Zylinderprojektion.
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.