在常见的业务,应该会遇到实时多边形的绘制,这也算最基本的业务,绘制多边形容易,如何保证其形状正确还是需要注意的,多边形的绘制为了保证图形本身正确,需要进行剖分,剖分算法earcut最为常用,本文中我用的three.js的Shape类,不用自己再去剖分,将shape处理后的faces赋值给Geometry, 用shape主要为了得到face,其实也就是顶点索引具体操作代码如下:
_createPolygonGeometry(){
let points=this._polygonPositons;//鼠标交互获取的点
let copyPoints=[];//备份复制点,为了绘制边缘线
copyPoints.push(points[0].clone());
let shape=new Shape();
shape.moveTo(points[0].x,points[0].z);
//将目标数组改成Vector2 这里默认去掉高度y,当然如果你喜欢可以用其他轴的
for (let i = 1; i < points.length; i++) {
shape.lineTo(points[i].x,points[i].z);
copyPoints.push(points[i].clo