Three.js 沿着几何体法线方向平移

发布于 2021-09-28 16:45:50 字数 664 浏览 1617 评论 0

比如一个三维模型在一个曲面表面上移动,当移动一个位置的时候,为了调整运动模型相对曲面的位置,可能需要把模型沿着所在位置曲面的法线方向平移一定距离。

通过 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

清晨说晚安

我之所以活到现在的全部意义,是为了此刻能对你说,我爱你,我会在你身后永远守护你。

0 文章
0 评论
21958 人气
更多

推荐作者

qq_Yqvrrd

文章 0 评论 0

2503248646

文章 0 评论 0

浮生未歇

文章 0 评论 0

养猫人

文章 0 评论 0

第七度阳光i

文章 0 评论 0

新雨望断虹

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文