# 线向量生成多边形_three.js绘制多边形

本文介绍如何使用three.js库中的Shape类来方便地绘制多边形,无需手动进行复杂的剖分算法如earcut。通过处理Shape获取faces并赋值给Geometry,然后创建Mesh并正确添加到Group和Scene中以确保多边形正确显示。
摘要由CSDN通过智能技术生成

78a2bbf6d3494dfad6a7bec2fb320660.png

在常见的业务,应该会遇到实时多边形的绘制,这也算最基本的业务,绘制多边形容易,如何保证其形状正确还是需要注意的,多边形的绘制为了保证图形本身正确,需要进行剖分,剖分算法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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值