localToWorld奇怪的行为

时间:2017-06-21 12:22:20

标签: javascript three.js

晚上好!

在我的项目中,我从字体几何体创建TextMesh并放入一个数据透视空对象。我需要获取TextMesh的每个顶点的世界坐标,因为我需要使用它们来对文本进行一些转换(自定义弯曲等等)。

以下是代码:

var pivot = new THREE.Object3D();
pivot.add(textMesh);

pivot.position.set(x, y, z);
pivot.rotation.set(roll, pitch, yaw);
scene.add(pivot);

pivot.updateMatrixWorld(true);
for(var i = 0; i < textMesh.geometry.vertices.length; i++)
{
    var worldCoords = textMesh.localToWorld(textMesh.geometry.vertices[i]);
}

我的textMesh的位置由&#34; localToWorld&#34;改变了。功能,我没想到。 有没有办法获得网格的每个顶点的世界位置而不使网格移动? 我究竟做错了什么? 有没有更简单的方法来沿着圆柱体弯曲文本网格?我已经检查了MOD3等等,并且找不到任何适用于我的设置的东西,所以我试图自己做。

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

试试这个:

var worldCoords = textMesh.localToWorld(textMesh.geometry.vertices[i].clone());

或者,如果您想重新使用worldCoords

var worldCoords = new THREE.Vector3();
textMesh.localToWorld(worldCoords.copy(textMesh.geometry.vertices[i]));