学习交流欢迎加群:789723098,博主会将一些demo整理共享
一、介绍
有时候我们在对三角网格模型进行操作的时候可能会需要对三角面进行选择,而实现这一功能最方便快捷的方法就是利用THREE.Raycaster创建射线来实现,在这边就不详细介绍射线的原理了,如果有兴趣的同学可以自行百度查询,有很多介绍射线的文章。Raycaster类的使用方法可以在官方文档中查询到:Raycaster使用方法, 如下图所示;
利用射线选取三角面最直观的实现就是利用鼠标点击,对鼠标点击的屏幕坐标位置的三角面进行选取,在这里屏幕坐标是2D的,需要先将屏幕坐标转换为3D坐标(世界坐标系),具体方法如下:
let mouse = new THREE.Vector2();//创建2D坐标
let raycaster = new THREE.Raycaster();//创建射线
//将m屏幕坐标转换成3D坐标
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
raycaster.setFromCamera(mouse, camera);
二、实现效果
接下来是本文的实现效果,博主实现了利用鼠标点击选取一个球体上的三角面片,如下图所示:
三、代码实现
接下来将本例的实现代码附上,分享给大家,如果对大家有帮助请记得点赞哦!