UGUI雷达图
来源:互联网 发布:财务审计软件oa 编辑:程序博客网 时间:2024/04/29 22:42
using UnityEngine;using UnityEngine.UI;using System.Collections;using System.Collections.Generic;using System;/// <summary>/// 绘制五边形雷达图,可转换多边形雷达图/// 以下是五边形的顶点示意图,012为一个三角形,023为一个三角形,034为一个三角形,/// 045为一个三角形,051为一个三角形,五个三角形拼接变成五边形/// /// 3/// /// 1 0 5/// /// 2 4/// </summary>public class UGUIDrawRadar : Graphic{ //顶点的坐标,顶点数量必须大于2 public List<Vector2> vertexList = new List<Vector2>(); //雷达图的五个分数 public float[] score = new float[5]; //雷达图的半径 public float radius = 5f; //雷达图最大分数 float maxScore =100; //雷达图最小分数 float minScore = 0; /// <summary> /// /// </summary> /// <param name="vh"></param> protected override void OnPopulateMesh(VertexHelper vh) { base.OnPopulateMesh(vh); List<UIVertex> targetVertexList = new List<UIVertex>(); int triangleCount = vertexList.Count - 2; //三角形 构成 for (int i = 0; i < triangleCount; i++) { for (int j = 0; j < 3; j++) //三角形的三个点 { UIVertex vertex = new UIVertex(); if (j == 0) { vertex.position = vertexList[0]; } else { vertex.position = vertexList[i + j]; } vertex.color = color; targetVertexList.Add(vertex); } } //最后一个三角形 051 for (int k = 0; k < 3; k++) { UIVertex vertex = new UIVertex(); if (k == 0) { vertex.position = vertexList[0]; } else if (k == 1) { vertex.position = vertexList[1]; } else if (k == 2) { vertex.position = vertexList[5]; } vertex.color = color; targetVertexList.Add(vertex); } vh.Clear(); vh.AddUIVertexTriangleStream(targetVertexList); } /// <summary> /// 设置雷达图绘制顶点 /// </summary> void SetVertex() { vertexList.Clear(); vertexList.Add(Vector2.zero); for (int i = 0; i < score.Length; i++) { var angle = i*2*Mathf.PI/5;//角度换算 vertexList.Add(new Vector2(radius * Mathf.Sin(angle) * ResetScore(score[i]), radius * Mathf.Cos(angle) * ResetScore(score[i])) ); } } /// <summary> /// 分数限制 /// </summary> /// <param name="sco"></param> /// <returns></returns> float ResetScore(float sco) { float score; score = sco; if (sco > maxScore) { score = maxScore; } if (sco < minScore) { score = minScore; } return score; } /// <summary> /// 设置雷达图的五个分数 /// </summary> /// <param name="scores_00"></param> /// <param name="scores_01"></param> /// <param name="scores_02"></param> /// <param name="scores_03"></param> /// <param name="scores_04"></param> public void SetScores(float scores_00, float scores_01, float scores_02,float scores_03, float scores_04) { score[0] = scores_00; score[1] = scores_01; score[2] = scores_02; score[3] = scores_03; score[4] = scores_04; SetVertex(); // Debug.Log("SetScores"); } /// <summary> /// 雷达图截屏 /// </summary> public void CaptureScreen() { Application.CaptureScreenshot(string.Format("{0}\\最终分数_{1}x{2}_{3}.png", Application.streamingAssetsPath, Screen.width, Screen.height, ReturnDate())); Debug.Log("截图放在" + Application.streamingAssetsPath + "路径下"); } /// <summary> /// 截图时间 /// </summary> /// <returns></returns> string ReturnDate() { string data; string dataYear; string dataMonth; string dataDay; string dataHour; string dataMin; string dataSecond; dataYear = System.DateTime.Now.Year.ToString(); dataDay = System.DateTime.Now.Day.ToString(); dataMonth = System.DateTime.Now.Month.ToString(); dataHour = System.DateTime.Now.Hour.ToString(); dataMin = System.DateTime.Now.Minute.ToString(); dataSecond = System.DateTime.Now.Second.ToString(); data = dataYear + "_" + dataMonth + "_" + dataDay + "_" + dataHour + "" + dataMin + "" + dataSecond; return data; }}
阅读全文
0 0
- UGUI雷达图
- UGUI雷达图
- UGUI雷达图
- Mesh绘制雷达图(UGUI)
- 在Unity中使用uGUI绘制自定义图形(饼状图 雷达图)
- 雷达图
- [资源分享][UGUI][Unity好文章]如何用unity实现像DOTA2那样的多边形数据雷达图
- OWC11绘制雷达图
- Flex RadarChart 雷达图
- OWC11绘制雷达图
- Excel雷达图
- EXTJS radarChart雷达图
- Android 自定义雷达图
- 5.1 雷达图
- python 画雷达图
- iOS雷达图
- android雷达图
- Tableau绘制雷达图
- spring boot启动报错Error creating bean with name 'entityManagerFactory' defined in class path resource [
- Java AES加密
- javascript垃圾回收机制
- DevExpress项目升级总结
- Autofac官方文档(一)【开始】
- UGUI雷达图
- java 对象的初始化顺序
- Mysql中的视图
- springboot(六):如何优雅的使用mybatis
- 白盒测试
- 第十一周项目1
- BZOJ 1143 祭祀river(floyd传递闭包+最大独立集)
- 从数据库中随机抽取一条记录的SQL语句
- 算法基础【1】 变量 数组 动态内存 魔数 宏