【发布时间】:2020-02-01 06:18:52
【问题描述】:
假设我有这个三角形(深蓝色)并且我知道它是顶点(红色): (1,3,0) (0,4,0) (-1,3,0)
现在我想在它们的顶点上方创建新点(黄色),但平行于三角形。在这种情况下,这很简单:只需添加 y 值即可。
但是如果三角形不是直的呢?例如: (1,3,0) (0,4,1) (-1,3,0)
我得到了它的 n-Vector(绿线),我想我必须用它来创建这些平行点,但我不知道如何......我正在寻找一种方法来以编程方式对多个三角形执行此操作以各种方式定位。有什么想法吗?
@Ben Whitmore
var v1 = new THREE.Vector3(0,4,1);
var v2 = new THREE.Vector3(1,3,0);
var v3 = new THREE.Vector3(-1,3,0);
var c = new THREE.Vector3( );
c.crossVectors( v2, v3 ) // { x: 0, y: -0, z: 6 }
c.normalize() // { x: 0, y: -0, z: 1 }
sphere.position.set( ??? );`
【问题讨论】: