我正在尝试学习操纵世界空间中物体的正确方法.作为一个测试我创建了一个立方体,我从一个任意向量绘制一些线到立方体上的每个顶点.
如果我不以任何方式更改立方体,那么线条会很好地击中顶点:

但如果我旋转立方体,那么这些线不再与顶点匹配:

显然,我知道我可以旋转线与我旋转立方体的数量相同,但我知道我应该操纵矩阵或向量来做到这一点.
任何人都可以解释我应该如何处理这样的常见问题,而无需旋转这两个对象.
为方便起见,我有一个jsfiddle玩
如果您希望使用代码旋转线条,只需将线条添加到多维数据集而不是场景:
// scene.add(line);
cube.add(line);
Run Code Online (Sandbox Code Playgroud)
但是,如果您想要的是将线的原点保持在相同的位置并更改线的末尾.
cube.updateMatrixWorld(); // make sure that cube.matrixWorld is updated.
for(var i = 0; i < 8 ;i++){
var vertex = cube.matrixWorld.multiplyVector3(cube.geometry.vertices[i].clone());
lineGeometry.vertices.push(vertex);
lineGeometry.vertices.push(lineStart);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |