首页 > 编程语言 >C#雷达图

C#雷达图

时间:2023-02-23 08:57:54浏览次数:32  
标签:arr C# float vh using 雷达 public rect

...using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;

public class RadarMap :MaskableGraphic
{
  public Texture2D sprite;
  public float[] arr;
  public float r;
  public override Texture mainTexture
  {  
    get
    {
      if (sprite!=null)
      {
        return sprite;
      }
      if (material != null && material.mainTexture!= null)
      {
        return material.mainTexture;
      }
      return s_WhiteTexture;
    }
  }
  //执行比awake快,编辑模式下能立马改变场景中的物体
  ·protected override void OnPopulateMesh(VertexHelper vh)
  {
    Rect rect = this.rectTransform.rect;
    int n = arr.Length;
    r = rect.width < rect.height ? rect.width / 2 : rect.height / 2;
    if (n >= 3)
    {
      vh.Clear();
      //圆心
      vh.AddVert(Vector3.zero, color, new Vector2(0.5f, 0.5f));
      //计算每个角的弧度
      float ang = 2 * Mathf.PI / n;
      //计算数组的最大值与半径的比值,可以不用
      float p = r/arr.Max();
      for (int i = 0; i < n; i++)
      {
        float x = Mathf.Sin(i * ang) * (arr[i] > r ? r : arr[i]);
        float y = Mathf.Cos(i * ang) * (arr[i] > r ? r : arr[i]);
        float uvx = (x + r) / (2 * r);
        float uvy = (y + r) / (2 * r);
        //添加顶点
        vh.AddVert(new Vector3(x, y, 0), color, new Vector2(uvx,uvy));
        if (i == 0)
        {
          //添加绘制
          vh.AddTriangle(0, n, 1);
        }
        else
        {
          vh.AddTriangle(0, i, i + 1);
        }
      }
    }
  }
}...

标签:arr,C#,float,vh,using,雷达,public,rect
From: https://www.cnblogs.com/bazi/p/17146634.html

相关文章

  • 启动docker时候怎么向内部程序传入参数
    启动docker时候怎么向内部程序传入参数 启动docker的命令是dockerrun******************他有好多的参数,具体看https://www.runoob.com/docker/docker-run-command......
  • AGC061 题解
    Thisisjustsad.Wait,no,notjustsad.Sadandenraging.Greatjob!--Um_nikA.LongShuffle(1600)打表容易发现当\(n\)为偶数时,对于所有\(k\in[1,n/2]......
  • 题解 Topcoder SRM789 FollowingNim
    题目链接题意给定\(n\)堆石子\(a_1,a_2,\cdots,a_n\)和一个集合\(S\),两名玩家轮流行动,每次可以在某堆石子中取走\(x\)个(不能不取)。特殊地,如果\(x\inS\),那么下......
  • 【Spring AOP】【十】Spring AOP源码解析-讲一下ExposeInvocationInterceptor
    1 前言不知道你在调试的时候,有没有发现我们的通知器链上首个元素会给我放进来一个ExposeInvocationInterceptor类型的通知器,看下图是不是,我们在之前其实也说过一次只是......
  • Scanner类
    Scanner类概念Scanner类是一个用来获取用户输入的类,让人与程序交互; 可调用方法next():接收输入的字符串,不能识别空白字符,如若输入的字符串中间有空白字符,则......
  • elk elasticsearch的简单介绍和操作
    目录elasticsearch的简单介绍和操作集群节点master节点data节点客户端节点部落节点集群的配置属性集群恢复设置属性设置不要对集群做以下操作集群的分片和副本重新创建一个......
  • MVC三层架构
    MVC三层架构什么是MVC:Model View Controller 模型、视图、控制器1.以前的方式用户直接访问控制层,控制层就可以直接操作数据库//servlet--->CRUD--->数据库//弊......
  • how to fix TypeScript error 'this' implicitly has type 'any' All In One
    howtofixTypeScripterror'this'implicitlyhastype'any'AllInOne'this'implicitlyhastype'any'becauseitdoesnothaveatypeannotation.ts(2683)......
  • python 把mysql数据导入到execl中
    importpymysqlimportpandasaspddb=pymysql.connect(host='127.0.0.1',user='root',passwd='123456',port=3306,database='world',......
  • IE和Microsoft Edge浏览器合并,如何设置单独打开IE
    IE和MicrosoftEdge浏览器合并,如何分离,单独打开注:最近系统更新,大家都有可能遇到打开IE时,会默认弹到MicrosoftEdge浏览器,这样会导致有些网页不能下载插件使用,兼容性太差,今......