给定一组Vector3点,我需要测试它们是否在某个任意平面上是共面的。假设它们是共面的,那么我需要将它们映射/投影到XY平面上,同时保持所有点之间的比例。
我认为这方面的数学不是太很难,但我正在寻找一种简单/有效的方法来使用three.js ...
答案 0 :(得分:1)
1)验证四个点位于同一平面的功能是very simple:
function tripleProduct(a,b,c) {
return a.clone().dot(
(new THREE.Vector3()).cross(b,c)
);
}
function _isCoPlanar(a,b,c,d) {
var ab = b.clone().sub(a);
var ac = c.clone().sub(a);
var ad = d.clone().sub(a);
return tripleProduct(ab,ac,ad) === 0;
}
You need to go through the array,并确保自第四个点以来的每个点与前三个点位于同一平面。
2)对于飞机上的投影,您可以使用projectOnPlane
功能。