算法-三角剖析(UnityC#版-其他语言稍作修改)

该博客介绍了如何在Unity中使用C#实现适用于凸多边形和凹多边形的三角剖析算法,内容包括算法原理及代码实现,经过少量调整即可应用于其他编程语言。
摘要由CSDN通过智能技术生成

支持凸多边形和凹多边形,具体算法如下,稍作修改就能用了。

Mesh CreateMesh(int mLength,Vector3[] Vertices,Mesh mymesh) {
        //利用mesh类画不规则多边形
        //the triangle arraylist
        //
        int i = 0;
        int j = 0;
        int numTiangle = (mLength - 2) * 3;
        Vector3[] normals;
        Vector2[] newUV;
        int[] newTiangles;
        newTiangles = new int[numTiangle];
        normals = new Vector3[mLength];
        newUV = new Vector2[mLength];
        mymesh.vertices = Vertices;
        ChangeToTriangle (newTiangles);
        mymesh.triangles = newTiangles;
        for(i = 0;i<mLength;i++)
        {
            normals[i] = Vector3.left;
        }
        mymesh.normals = normals;
        for(i = 0;i<mLength;i++)
        {
            newUV[i] = new Vector2(newVertices[i].x,newVertices[i].y); 
        }
        mymesh.uv = newUV;
        mymesh.RecalculateBounds();
        mymesh.RecalculateNormals();
        return mymesh;
    }

    void ChangeToTriangle(int[] T
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值