using System.Collections.Generic;
using UnityEngine; [RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))]
public class Radar : MonoBehaviour
{
[Tooltip("属性边长")]
public float radius = ;
[Range(, ), Tooltip("当前属性百分比")]
public List<float> m_attributes; private float m_cell_angle;
private List<Vector3> m_vertices = new List<Vector3>();
private int[] m_triangles; private MeshRenderer m_render;
private MeshFilter m_filter;
private Mesh m_mesh; private void Awake()
{
m_render = GetComponent<MeshRenderer>();
m_filter = GetComponent<MeshFilter>();
m_mesh = new Mesh();
m_filter.mesh = m_mesh;
if (m_render.material == null)
{
Debug.LogWarning("请添加Material");
}
} void Start()
{
if (m_attributes.Count != )
{
m_cell_angle = / m_attributes.Count;
InitMeshData();
}
} private void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Refresh();
}
} void InitMeshData()
{
#region 设置顶点
m_vertices.Clear();
m_vertices.Add(new Vector3(, , ));
m_vertices.Add(new Vector3(radius, , )); for (int i = ; i < m_attributes.Count; i++)
{
float angle = Mathf.Deg2Rad * m_cell_angle * (i + );
Vector3 point = new Vector3(radius * Mathf.Cos(angle), radius * Mathf.Sin(angle), );
m_vertices.Add(point);
}
#endregion #region 设置三角形
m_triangles = new int[m_attributes.Count * ]; int index = ;
int value = ;
for (int i = ; i < m_triangles.Length; i++)
{
if (i % == )
{
m_triangles[i] = ;
value = index;
index++;
}
else
{
value++;
if (value == m_attributes.Count + )
value = ;
m_triangles[i] = value;
}
}
#endregion
} void Refresh()
{
Vector3[] vertices = m_vertices.ToArray(); for (int i = ; i < m_vertices.Count; i++)
{
vertices[i] = m_vertices[i] * m_attributes[i - ];
} m_mesh.vertices = vertices;
m_mesh.triangles = m_triangles;
m_mesh.RecalculateNormals();
}
}

转载:https://blog.csdn.net/zjw1349547081/article/details/53667690

Unity 属性雷达图的更多相关文章

  1. Mesh绘制雷达图(UGUI)

    参考资料:http://www.cnblogs.com/jeason1997/p/5130413.html ** 描述:雷达图 刷新 radarDate.SetVerticesDirty(); usi ...

  2. WPF DevExpress 设置雷达图Radar样式

      DevExpress中定义的ChartControl很不错,很多项目直接使用这种控件. 本节讲述雷达图的样式设置 <Grid> <Grid.Resources> <D ...

  3. 【VR视频播放】解决Unity模型贴图反转的问题

    使用UV贴图网模型上贴的时候, 会出现图片反过来的情况. 根本原因是因为, 一般系统的屏幕坐标系(例如Android)是左上角为原点(0,0), 但是Unity的贴图是以左下角为原点(0,0) 方法有 ...

  4. 利用d3.js绘制雷达图

    利用d3,js将数据可视化,能够做到数据与代码的分离.方便以后改动数据. 这次利用d3.js绘制了一个五维的雷达图.即将多个对象的五种属性在一张图上对照. 数据写入data.csv.数据类型写入typ ...

  5. Silverlight 雷达图和一种特殊泡泡画法

    原文:Silverlight 雷达图和一种特殊泡泡画法 自上次发了雷达图,也没怎么说一下. 这次又做了一种图,继续共享一下,就是以一个点为中心,周围绕着几个点,用一个箭头与中心相连并带有某些信息.圆 ...

  6. echarts雷达图点击事件

    最近看见别人问的问题,点击雷达图的拐点,获取点击数据的问题,直接上代码. echarts配置问题:https://www.douban.com/note/509404582/ <!doctype ...

  7. JavaScript数据可视化编程学习(二)Flotr2,雷达图

    一.雷达图 使用雷达图显示多维数据. 如果你有多维的数据要展示,那么雷达图就是一种非常有效的可视化方法. 由于雷达图不常用,比较陌生,所以向用户解释的时候有一些难度.注意使用雷达图会增加用户认知负担. ...

  8. 浅谈canvas绘画王者荣耀--雷达图

    背景: 一日晚上下班的我静静的靠在角落上听着歌,这时"滴!滴!"手机上传来一阵qq消息.原来我人在问王者荣耀的雷达图在页面上如何做出来的,有人回答用canvas绘画.那么问题来了, ...

  9. 关于echarts生成雷达图的一些参数介绍

    export const industryFactorOption = { title: { text: '雷达图', textStyle: { color: 'rgba(221,221,221,1) ...

随机推荐

  1. phpstorm对laravel的一些使用技巧

    安装laravel插件,设置ctrl+alt+s 二 安装智能提示插件 composer require barryvdh/laravel-ide-helper 在config/app.php的pro ...

  2. xss的一般防护措施(及CreateDefaultBuilder源码)

    从上个礼拜开始,公司的安全小组就开始排查公司项目的安全性,首屈一指的就是xss问题,为此我总结了下我的经验. 1.对后台程序的输出数据做html编码处理,前端做简单的替换处理 2.如果业务需要,后台可 ...

  3. webpack报错运行时没有定义

    一.问题描述 ReferenceError: regeneratorRuntime is not defined 二.问题分析 缺少regenerator的运行时库,具体原理,可查看babel文章. ...

  4. Node.js c++ 扩展之HelloWorld

    测试环境 vs:vs2017 node.js:9.9.6 相关地址 官方文档对应地址:https://www.nodejs.org/api/addons.html 官方案例对应地址:https://w ...

  5. js 复制(自动)

    <script type="text/javascript"> document.writeln("<input type=\'text\' id=\' ...

  6. docker修改容器信息,打包等

    https://blog.csdn.net/x6_9x/article/details/72891404

  7. 树形数组 java

    2^k求法 int lowbit(int x) { return x&(-x); } lowbit()的返回值就是 2^k 次方的值. 基本树形数组的模板 import java.util.* ...

  8. Python(一)缺点

    (一)慢~~~ (二)Python不能加密

  9. vee-validate的使用

    官网地址:http://vee-validate.logaretm.com/ 这是一个插件Vue.js可以验证输入字段,显示错误,在一个简单而强大的方法.学习vee-validate,首先可以去阅读官 ...

  10. ES6 模块机制

    ES6 实现了模块功能 将文件当作独立的模块,一个文件一个模块 每个模块可以导出自己的API成员,也可以导入其他模块或者模块中特定的API ES6 模块的设计思想,是尽量的静态化,使得编译时就能确定模 ...