使用unity绘制旋转的三角形

来源:互联网 发布:电脑打字软件怎么下载 编辑:程序博客网 时间:2024/04/27 12:16

使用的旋转矩阵的原理,如图:



然后下面是代码:

using UnityEngine;using System.Collections;public class Test : MonoBehaviour{   public Vector3 a, b, c;    void Start()    {        //DrawTriangle(Rotate(1, a), Rotate(1, b), Rotate(1, c));    }    void Update()    {        DrawTriangle(Rotate(10, ref a), Rotate(10, ref b), Rotate(10, ref c));    }    private void DrawTriangle(Vector3 a,Vector3 b,Vector3 c)    {        MeshFilter meshFilter = GetComponent<MeshFilter>();        Mesh mesh = meshFilter.mesh;        Vector3[] vertices = new Vector3[3];        vertices[0] = a;        vertices[1] = b;        vertices[2] = c;        int[] triangles = new int[3];        triangles[0] = 0;        triangles[1] = 1;        triangles[2] = 2;        mesh.vertices = vertices;        mesh.triangles = triangles;    }      public Vector3  Rotate(int degrees, ref Vector3 pos)    {        float angle = (float)(degrees / 360.0f * Mathf.PI);        float x = (float)(pos.x * Mathf.Cos(angle) - pos.y * Mathf.Sin(angle));        float y = (float)(pos.x * Mathf.Sin(angle) + pos.y * Mathf.Cos(angle));        pos.x = x;        pos.y = y;        return pos;    }}


下面是Inspector的截图:



运行效果:、



0 0
原创粉丝点击