Three.js 沿着几何体法线方向平移
比如一个三维模型在一个曲面表面上移动,当移动一个位置的时候,为了调整运动模型相对曲面的位置,可能需要把模型沿着所在位置曲面的法线方向平移一定距离。
通过 .face.normal
属性可以获得射线选中模型当前位置的法线值,更多信息可以参考 threejs 文档关于 Raycaster
介绍。
模型对象的 .translateOnAxis()
方法表示一个模型沿着参数1三维向量 Vector3 表示的方向移动一定距离,参数2用来设置平移的距离,关于方法更多介绍可以参考 threejs 文档 Object3D
。
var intersects = raycaster.intersectObjects([sphereMesh...]);
if (intersects.length > 0) {
// 射线位置赋值给移动网格模型
moveMesh.position.copy(intersects[0].point)
// 沿着法线方向平移移动的网格模型
var normal = intersects[0].face.normal;// 当前位置曲面法线
moveMesh.translateOnAxis(intersects[0].face.normal,5);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论