| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 | 
							- using UnityEngine;
 
- using System.Collections.Generic;
 
- namespace XCharts.Runtime
 
- {
 
-     /// <summary>
 
-     /// Polar coordinates are usually used in a circular layout.
 
-     /// || 极坐标系,可以用于散点图和折线图。
 
-     /// </summary>
 
-     [AddComponentMenu("XCharts/PolarChart", 23)]
 
-     [ExecuteInEditMode]
 
-     [RequireComponent(typeof(RectTransform))]
 
-     [DisallowMultipleComponent]
 
-     [HelpURL("https://xcharts-team.github.io/docs/configuration")]
 
-     public class PolarChart : BaseChart
 
-     {
 
-         protected override void DefaultChart()
 
-         {
 
-             EnsureChartComponent<PolarCoord>();
 
-             EnsureChartComponent<AngleAxis>();
 
-             var radiusAxis = EnsureChartComponent<RadiusAxis>();
 
-             radiusAxis.axisLabel.show = false;
 
-             var tooltip = EnsureChartComponent<Tooltip>();
 
-             tooltip.type = Tooltip.Type.Corss;
 
-             tooltip.trigger = Tooltip.Trigger.Axis;
 
-             RemoveData();
 
-             var serie = Line.AddDefaultSerie(this, GenerateDefaultSerieName());
 
-             serie.SetCoord<PolarCoord>();
 
-             serie.ClearData();
 
-             serie.symbol.show = false;
 
-             for (int i = 0; i <= 360; i++)
 
-             {
 
-                 var t = i / 180f * Mathf.PI;
 
-                 var r = Mathf.Sin(2 * t) * Mathf.Cos(2 * t) * 2;
 
-                 AddData(0, Mathf.Abs(r), i);
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// default radial bar polar chart.
 
-         /// || 默认径向柱状极坐标图。
 
-         /// </summary>
 
-         public void DefaultRadialBarPolarChart()
 
-         {
 
-             CheckChartInit();
 
-             RemoveData();
 
-             var polarCoord = GetChartComponent<PolarCoord>();
 
-             polarCoord.radius[0] = 20;
 
-             var categorys = new string[] { "a", "b", "c", "d" };
 
-             var radiusAxis = GetChartComponent<RadiusAxis>();
 
-             radiusAxis.splitNumber = 4;
 
-             var angleAxis = GetChartComponent<AngleAxis>();
 
-             angleAxis.type = Axis.AxisType.Category;
 
-             angleAxis.startAngle = 75;
 
-             angleAxis.boundaryGap = true;
 
-             angleAxis.splitLine.show = false;
 
-             foreach (var category in categorys)
 
-                 angleAxis.AddData(category);
 
-             var serie = AddSerie<Bar>(GenerateDefaultSerieName());
 
-             serie.SetCoord<PolarCoord>();
 
-             serie.ClearData();
 
-             serie.symbol.show = false;
 
-             for (int i = 0; i < categorys.Length; i++)
 
-             {
 
-                 var x = UnityEngine.Random.Range(0f, 4f);
 
-                 var y = i;
 
-                 AddData(0, x, y, categorys[i]);
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// default tangential bar polar chart.
 
-         /// || 默认切向柱状极坐标图。
 
-         /// </summary>
 
-         public void DefaultTangentialBarPolarChart()
 
-         {
 
-             CheckChartInit();
 
-             RemoveData();
 
-             var polarCoord = GetChartComponent<PolarCoord>();
 
-             polarCoord.radius[0] = 20;
 
-             var categorys = new string[] { "a", "b", "c", "d" };
 
-             var radiusAxis = GetChartComponent<RadiusAxis>();
 
-             radiusAxis.type = Axis.AxisType.Category;
 
-             radiusAxis.splitNumber = 4;
 
-             radiusAxis.boundaryGap = true;
 
-             var angleAxis = GetChartComponent<AngleAxis>();
 
-             angleAxis.type = Axis.AxisType.Value;
 
-             radiusAxis.splitNumber = 12;
 
-             angleAxis.startAngle = 75;
 
-             angleAxis.max = 4;
 
-             foreach (var category in categorys)
 
-                 radiusAxis.AddData(category);
 
-             var serie = AddSerie<Bar>(GenerateDefaultSerieName());
 
-             serie.SetCoord<PolarCoord>();
 
-             serie.ClearData();
 
-             serie.symbol.show = false;
 
-             for (int i = 0; i < categorys.Length; i++)
 
-             {
 
-                 var x = UnityEngine.Random.Range(0f, 4f);
 
-                 var y = i;
 
-                 AddData(0, y, x, categorys[i]);
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// default heatmap polar chart.
 
-         /// || 默认极坐标色块图。 
 
-         /// </summary>
 
-         public void DefaultHeatmapPolarChart()
 
-         {
 
-             CheckChartInit();
 
-             RemoveData();
 
-             var visualMap = EnsureChartComponent<VisualMap>();
 
-             var colors = new List<string> { "#BAE7FF", "#1890FF", "#1028ff" };
 
-             visualMap.AddColors(colors);
 
-             visualMap.autoMinMax = true;
 
-             var polarCoord = GetChartComponent<PolarCoord>();
 
-             polarCoord.radius[0] = 20;
 
-             var categorys = new string[] { "a", "b", "c", "d" };
 
-             var radiusAxis = GetChartComponent<RadiusAxis>();
 
-             radiusAxis.type = Axis.AxisType.Category;
 
-             radiusAxis.splitNumber = 4;
 
-             radiusAxis.boundaryGap = true;
 
-             var angleAxis = GetChartComponent<AngleAxis>();
 
-             angleAxis.type = Axis.AxisType.Category;
 
-             angleAxis.boundaryGap = true;
 
-             angleAxis.splitNumber = 24;
 
-             angleAxis.startAngle = 75;
 
-             angleAxis.max = 4;
 
-             foreach (var category in categorys)
 
-                 radiusAxis.AddData(category);
 
-             for (int i = 0; i < 24; i++)
 
-             {
 
-                 angleAxis.AddData(i + "h");
 
-             }
 
-             var serie = AddSerie<Heatmap>(GenerateDefaultSerieName());
 
-             serie.SetCoord<PolarCoord>();
 
-             serie.ClearData();
 
-             serie.symbol.show = false;
 
-             for (int x = 0; x < 4; x++)
 
-             {
 
-                 for (int y = 0; y < 24; y++)
 
-                 {
 
-                     AddData(0, x, y, UnityEngine.Random.Range(0f, 4f));
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |