【发布时间】:2015-02-13 20:27:22
【问题描述】:
我有点卡住了。
我有一张脸,它的中心位置和正常的脸。我想沿法线方向在该面的前面放置另一个对象,可以说是 1 个单位。我要放置在脸部前面的对象尚未正确旋转,这实际上是另一个要解决的任务:垂直于脸部法线旋转对象(平面)。有什么提示吗?
【问题讨论】:
标签: three.js
我有点卡住了。
我有一张脸,它的中心位置和正常的脸。我想沿法线方向在该面的前面放置另一个对象,可以说是 1 个单位。我要放置在脸部前面的对象尚未正确旋转,这实际上是另一个要解决的任务:垂直于脸部法线旋转对象(平面)。有什么提示吗?
【问题讨论】:
标签: three.js
我假设您有一个要放置的object,一个表示人脸所属对象位置的center,以及一个face。
您可以使用面部的法线定位对象:
object.position.addVectors(center, new THREE.Vector3(1, 1, 1).multiplyScalar(1));
要旋转它,您可以执行以下操作:
object.lookAt(center);
【讨论】:
Object3D.position 是不可变的,所以object.position = 在three.js 中不是一个有效的构造。
center 是脸部的中心,我也有normal vector。与lookAt 一起旋转很酷而且很有效!