Three.js 沿着几何体法线方向平移 - 文章教程

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

发布于 2021-09-28 字数 871 浏览 960 评论 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);
}

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

清晨说ぺ晚安

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

16 文章
2 评论
21679 人气
更多

推荐作者

魏剑帆

文章 0 评论 0

yanggwq

文章 0 评论 0

qq_c2gI5

文章 0 评论 0

qq_iQVWB

文章 0 评论 0