Three.js将多边形线条(Line)转换成模型(Mesh)

Three.js将多边形线条(Line)转换成模型(Mesh),第1张

当一个国家由多边形轮廓组合而成时,我们如何将它转换成三角面模型呢?

对点击进行三角剖分后我们发现多边形轮廓外面也进行了三角剖分,显然这不是我们想要的。

接下来我们需要使用point-in-polygon库(判断点是否在多边形内)来去除轮廓外的三角面。

1、求出外面三角面的重心

2、使用point-in-polygon判断重心是否在轮廓内。

3、重置顶点索引

将多边形轮廓转换成mesh后可以使用射线进行拾取 *** 作。

threejsiphone加载崩溃的原因是ios15x系统中更新了贴图机制,导致贴图无法加载,threejs官方给出的结论是这是ios本身的bug,threejs大模型加载崩溃解决办法如下所述:

解决办法是拆分模型的时候按材质拆分,一种材质一个Obj文件,压缩成drc文件。

ThreeJS官方加载Ldraw文件,实质就是通过循环加载mpd文件里每一个dat模型,这样相同的dat就会出现重复加载,因此要提升加载速度,唯有将这个流程简化。

说一下我的思路:

threejs包含了很多相机控制器,通过旋转相机可以达到同样的旋转效果。

但是当我们需要固定场景背景,固定固定摄像机的时候。我们只能去移动物体了。Threejs提供了

TransformControlsjs控件,它可以控制物体的旋转、缩放、平移,但是使用起来并不方便。

这个时候就需要自己动手写控制器了。

原理很简单:获取鼠标(手势)点击的位置,以及鼠标拖动的距离。

把移动的方向和距离作为参数传递给物体。然后在循环中改变物体的属性来控制物体。

将要转动的物体放在一个组中,改变该组就可以。

这里获取的是X轴方向的鼠标移动的值。然后绕Y轴旋转。也可以添加其他的方向的旋转事件。

也可以添加一个功能,点击立方体之上才有效果。再说吧。

以上就是关于Three.js将多边形线条(Line)转换成模型(Mesh)全部的内容,包括:Three.js将多边形线条(Line)转换成模型(Mesh)、threejsiphone加载崩溃、ThreeJS加载ldraw模型优化方案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9818160.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存