Pracuję z Three.js. Mam kolekcję punktów 3D (x, y, z) oraz kolekcję twarzy. Jedna twarz składa się z K punktów. Może być równie wypukły jak wklęsły. Nie znalazłem nic, co mogłoby mi pomóc w dokumentacji Three.js. Jednym z rozwiązań może być triangulacja tych kształtów, ale do tej pory nie znalazłem żadnego prostego algorytmu triangulacji 3D.Triangulacja punktów 3D z wierzchołkami K na twarz
Innym rozwiązaniem byłoby zrobić coś takiego:
var pointsGeometry = new THREE.Geometry();
pointsGeometry.vertices.push(new THREE.Vector3(10, 0, 0));
pointsGeometry.vertices.push(new THREE.Vector3(10, 10, 0));
pointsGeometry.vertices.push(new THREE.Vector3(0, 10, 0));
pointsGeometry.vertices.push(new THREE.Vector3(1, 3, 0));
pointsGeometry.vertices.push(new THREE.Vector3(-1, 3, 0));
pointsGeometry.vertices.push(new THREE.Vector3(10, 0, 0));
var material = new THREE.MeshBasicMaterial({color: 0x00ff00});
var mesh = new THREE.Shape/ShapeGeometry/Something(pointsGeometry, material);
group.add(mesh);
scene.add(group);
mam dużo tych kształtów, które budują razem zamkniętą powierzchnię.
Jakieś sugestie?
Dziękuję za uwagę. Miłego dnia.
Wiem już, że punkty są współpłaszczyznowe, więc mogę łatwo obliczyć normalną płaszczyznę, rzutować płaszczyznę i punkty na płaszczyznę X, Y. Mam już własny algorytm triangulacji 2D. potem nie muszę odwracać punktów do poprzedniej płaszczyzny, ponieważ potrzebuję ich kolejności, potem kolejność punktów mogę z łatwością utworzyć trójkąty i wysłać je do pliku three.js i zbudować obiekt z geometrią bufora (Wygląda na to, że nie mogę Cię oznaczyć), ale dzięki i wersja demonstracyjna jest świetna, mam przetestować ją z moimi danymi i sprawdzić, czy pasuje do mojego systemu :) – Swisx