using System; using System.Collections.Generic; namespace Masuit.Tools.Maths { public class RadarChart { /// /// 向量长度集合 /// public List Data { get; } /// /// 起始弧度 /// public double StartAngle { get; } // 弧度 /// /// 多边形 /// /// 向量长度集合 /// 起始弧度 public RadarChart(List data, double startAngle = 0) { Data = new List(data); StartAngle = startAngle; } /// /// 获取每个点的坐标 /// /// public List GetPoints() { int count = Data.Count; List result = new List(); for (int i = 0; i < count; i++) { double length = Data[i]; double angle = StartAngle + Math.PI * 2 / count * i; double x = length * Math.Cos(angle); double y = length * Math.Sin(angle); result.Add(new Point2D(x, y)); } return result; } } }