PCo*_*lho 1 javascript rotation three.js
在我的场景中我有一条文字。创建后,我旋转它以适合正确的区域。然而,边界框完全忽略了旋转。
\n\n我在这里做了一个小提琴:http://jsfiddle.net/paulocoelho/qMqH7/5/
\n\n如果您检查输出,您会得到:
\n\n// before rotation\nTHREE.Vector3 {x: 28.365000000000006, y: 6.2806, z: 0.5, constructor: function, set: function\xe2\x80\xa6}\nTHREE.Vector3 {x: 0.2542, y: 0, z: 0, constructor: function, set: function\xe2\x80\xa6}\n// after rotation\nTHREE.Vector3 {x: 28.365000000000006, y: 6.2806, z: 0.5, constructor: function, set: function\xe2\x80\xa6}\nTHREE.Vector3 {x: 0.2542, y: 0, z: 0, constructor: function, set: function\xe2\x80\xa6}\nRun Code Online (Sandbox Code Playgroud)\n\n因为我在 Z 轴上旋转 90 度,所以我希望看到“旋转后边界”:
\n\n{x: 2.2806, y: 28.365000000000006, z: 0.5}\nRun Code Online (Sandbox Code Playgroud)\n\n有没有办法可以轻松实现这一目标?
\ngeometry对旋转一无所知。你有两个选择。
第一个选项是通过将旋转矩阵应用于几何体来旋转几何体,而不是旋转网格。例如,
geometry.rotateZ( Math.PI / 2 );
Run Code Online (Sandbox Code Playgroud)
现在您可以致电geometry.computeBoundingBox(),您应该会看到您所期望的结果。
第二个选项是用于Box3.setFromObject( object )计算网格的边界框:
var box = new THREE.Box3().setFromObject( object );
Run Code Online (Sandbox Code Playgroud)
此函数计算对象(包括其子对象)的世界轴对齐边界框,同时考虑对象和子对象的世界变换。
编辑:更新到 Three.js r.95
| 归档时间: |
|
| 查看次数: |
3911 次 |
| 最近记录: |