unity怎么根据坐标绘制线_Unity中绘制属性雷达图《二》

本文详细介绍了如何在Unity中根据坐标绘制雷达图。首先解释了绘制原理,即通过拆解雷达图成三角形并利用OnPopulateMesh函数传递顶点数据给图形API。接着,代码讲解部分涵盖了OnPopulateMesh函数、DrawRadarBackground函数、DrawRadarDotLine和DrawRadar的实现细节,包括顶点坐标计算、三角形绘制顺序和等宽直线的绘制。文章提供了源码下载链接供读者实践。
摘要由CSDN通过智能技术生成

a3bc2e0f80231ead6a3a913b783cc080.png
上一篇文章中介绍了雷达图的顶点计算
炉石不传说:Unity中绘制属性雷达图《一》​zhuanlan.zhihu.com
24188471ba75152e1bd10d9fb758ed87.png
这篇文章主要介绍绘制原理以及绘制代码。

一、绘制原理

我们知道计算机图形绘制中最基本的图元为三角形,所以我们需要把我们绘制的雷达图拆解为三角形,然后将这些三角形的顶点数据传递给图形API接口,计算机才能绘制出我们想要的图形。在Unity中绘制UI的API就是OnPopulateMesh(VertexHelper vh)这个函数了。我们只需要把数据传个它,剩下的工作就由Unity帮我们完成了。

首先我们看一下这个函数OnPopulateMesh的参数VertexHelper ,它主要是提供绘制三角形的API。我在雷达图中使用了AddUIVertexStream(List<UIVertex> verts, List<int> indices)绘制接口,提供顶点列表和顶点索引的方式来绘制,你也可以选择绘制矩形的接口AddUIVertexQuad(UIVertex[] verts),最终实现效果都是一样的,根据个人习惯选择绘制接口。下图是这个VertexHelper 类的接口函数:

c75d38584ed001fbea8cc1ebe4204031.png

二、雷达图的绘制代码讲解

一、OnPopulateMesh函数

1、polygonVertex用于存储多边形顶点数据,大小+1是为了绘制的时候去点方便。

2、float rad = 2 * Mathf.PI / m_polygonCount;把圆周平分成11个维度,然后计算出每个维度的弧度值rad。

3、已知斜边和夹角,根据三角函数计算出每个顶点的坐标值。

polygonVertex[i].x = m_center.x + m_radius * Mathf.Cos(a);

polygonVertex[i].y = m_center.y + m_radius * Mathf.Sin(a);

4、特殊枚举值含义

EAlign.Y_FORWARD是标记起始坐标点是从X轴开始还是Y轴还是

EDirection.CLOCKWISE是标记这次绘制填充数据三角的顺序是按照顺时针还是逆时针

5、vh_.AddUIVertexStream(m_vertexs, m_triangles)是Unity绘制接口,传入顶点和顶点索引按照顺序进行绘制。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值