Tôi đang làm việc với Three.js. Tôi có một bộ sưu tập gồm Điểm 3D (x, y, z) và một bộ sưu tập các khuôn mặt. Một mặt bao gồm K điểm. Nó cũng có thể lồi lõm. Tôi không tìm thấy gì có thể giúp tôi trong tài liệu Three.js. Một giải pháp có thể là để triangulate những hình dạng, nhưng cho đến nay tôi đã không tìm thấy bất kỳ thuật toán tam giác 3D đơn giản.Triangulation các điểm 3D với K đỉnh mỗi mặt
Các giải pháp khác sẽ làm một cái gì đó như thế:
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);
Tôi có rất nhiều những hình dạng mà cùng nhau xây dựng một mặt kín.
Bất kỳ đề xuất nào?
Cảm ơn sự quan tâm của bạn. Chúc một ngày tốt đẹp.
Tôi đã biết rằng các điểm là đồng phẳng, vì vậy tôi có thể dễ dàng tính toán bình thường của mặt phẳng, chiếu mặt phẳng và các điểm vào mặt phẳng X, Y. Tôi đã có một thuật toán triangulation 2D riêng. sau đó tôi không cần phải đảo ngược các điểm đến mặt phẳng trước đó, bởi vì tôi chỉ cần thứ tự của chúng, Sau đó, với thứ tự các điểm tôi có thể dễ dàng tạo thành các hình tam giác và gửi chúng đến ba.js. (Có vẻ như tôi không thể gắn thẻ bạn) nhưng cảm ơn và bản demo là tuyệt vời, tôi sẽ kiểm tra nó với dữ liệu của tôi và xem nó có phù hợp với hệ thống của tôi không :) – Swisx