WebGL教程_Three.js教程_郭隆邦技术博客 郭隆邦_技术博客 一对一班

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);
}
本站版权所有,本站任何内容未经允许不得转载   备案号:豫ICP备16004767号 QQ群:187740169 (WebGL-Three.js教程)   邮箱:guolongbang@163.com