mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-22 00:20:18 +00:00
添加RadarChart相关API接口
This commit is contained in:
131
Assets/XCharts/Runtime/API/RadarChart_API.cs
Normal file
131
Assets/XCharts/Runtime/API/RadarChart_API.cs
Normal file
@@ -0,0 +1,131 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
public partial class RadarChart
|
||||
{
|
||||
/// <summary>
|
||||
/// 雷达坐标系组件列表。
|
||||
/// </summary>
|
||||
public List<Radar> radars { get { return m_Radars; } }
|
||||
|
||||
/// <summary>
|
||||
/// 移除所有数据,包含雷达坐标系指示器数据。
|
||||
/// </summary>
|
||||
public override void RemoveData()
|
||||
{
|
||||
base.RemoveData();
|
||||
foreach (var radar in m_Radars)
|
||||
{
|
||||
radar.indicatorList.Clear();
|
||||
}
|
||||
m_CheckRadars.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 移除所有雷达坐标系组件。
|
||||
/// </summary>
|
||||
public void RemoveRadar()
|
||||
{
|
||||
m_Radars.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加雷达坐标系组件。
|
||||
/// </summary>
|
||||
public void AddRadar(Radar radar)
|
||||
{
|
||||
m_Radars.Add(radar);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加雷达坐标系组件。
|
||||
/// </summary>
|
||||
/// <param name="shape">形状,圆形还是多边形</param>
|
||||
/// <param name="center">中心点,0-1浮点数时表示百分比</param>
|
||||
/// <param name="radius">半径,0-1浮点数时表示百分比</param>
|
||||
/// <param name="splitNumber">指示器轴的分割段数</param>
|
||||
/// <param name="lineWidth">线条宽</param>
|
||||
/// <param name="showIndicator">是否显示指示器名称</param>
|
||||
/// <param name="showSplitArea">是否显示分割区域</param>
|
||||
/// <returns></returns>
|
||||
public Radar AddRadar(Radar.Shape shape, Vector2 center, float radius, int splitNumber = 5,
|
||||
float lineWidth = 0.6f, bool showIndicator = true, bool showSplitArea = true)
|
||||
{
|
||||
var radar = new Radar();
|
||||
radar.shape = shape;
|
||||
radar.splitNumber = splitNumber;
|
||||
radar.radius = radius;
|
||||
radar.indicator = showIndicator;
|
||||
radar.center[0] = center.x;
|
||||
radar.center[1] = center.y;
|
||||
radar.splitArea.show = showSplitArea;
|
||||
radar.lineStyle.width = lineWidth;
|
||||
m_Radars.Add(radar);
|
||||
return radar;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加指示器。
|
||||
/// </summary>
|
||||
/// <param name="radarIndex">雷达坐标系组件索引,从0开始</param>
|
||||
/// <param name="name">指示器名称</param>
|
||||
/// <param name="min">指示器最小值</param>
|
||||
/// <param name="max">指示器最大值</param>
|
||||
/// <returns></returns>
|
||||
public Radar.Indicator AddIndicator(int radarIndex, string name, float min, float max)
|
||||
{
|
||||
var radar = GetRadar(radarIndex);
|
||||
if (radar == null) return null;
|
||||
return radar.AddIndicator(name, min, max);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新指示器。
|
||||
/// </summary>
|
||||
/// <param name="radarIndex">雷达坐标系组件的索引,从0开始</param>
|
||||
/// <param name="indicatorIndex">指示器索引,从0开始</param>
|
||||
/// <param name="name">指示器名称</param>
|
||||
/// <param name="min">指示器最小值</param>
|
||||
/// <param name="max">指示器最大值</param>
|
||||
/// <returns></returns>
|
||||
public bool UpdateIndicator(int radarIndex, int indicatorIndex, string name, float min, float max)
|
||||
{
|
||||
var radar = GetRadar(radarIndex);
|
||||
if (radar == null) return false;
|
||||
return radar.UpdateIndicator(indicatorIndex, name, min, max);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获得指定索引的雷达坐标系组件。
|
||||
/// </summary>
|
||||
/// <param name="radarIndex"></param>
|
||||
/// <returns></returns>
|
||||
public Radar GetRadar(int radarIndex)
|
||||
{
|
||||
if (radarIndex < 0 || radarIndex > m_Radars.Count - 1) return null;
|
||||
return m_Radars[radarIndex];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获得指定雷达坐标系组件指定索引的指示器。
|
||||
/// </summary>
|
||||
/// <param name="radarIndex"></param>
|
||||
/// <param name="indicatorIndex"></param>
|
||||
/// <returns></returns>
|
||||
public Radar.Indicator GetIndicator(int radarIndex, int indicatorIndex)
|
||||
{
|
||||
var radar = GetRadar(radarIndex);
|
||||
if (radar != null) return radar.GetIndicator(indicatorIndex);
|
||||
else return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Runtime/API/RadarChart_API.cs.meta
Normal file
11
Assets/XCharts/Runtime/API/RadarChart_API.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f17a7aa35fdd3417dab9414f10fe2886
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -417,5 +417,31 @@ namespace XCharts
|
||||
var y = runtimeCenterPos.y + (runtimeRadius + indicatorGap) * Mathf.Cos(angle);
|
||||
return new Vector3(x, y);
|
||||
}
|
||||
|
||||
public Radar.Indicator AddIndicator(string name, float min, float max)
|
||||
{
|
||||
var indicator = new Radar.Indicator();
|
||||
indicator.name = name;
|
||||
indicator.min = min;
|
||||
indicator.max = max;
|
||||
indicatorList.Add(indicator);
|
||||
return indicator;
|
||||
}
|
||||
|
||||
public bool UpdateIndicator(int indicatorIndex, string name, float min, float max)
|
||||
{
|
||||
var indicator = GetIndicator(indicatorIndex);
|
||||
if (indicator == null) return false;
|
||||
indicator.name = name;
|
||||
indicator.min = min;
|
||||
indicator.max = max;
|
||||
return true;
|
||||
}
|
||||
|
||||
public Radar.Indicator GetIndicator(int indicatorIndex)
|
||||
{
|
||||
if (indicatorIndex < 0 || indicatorIndex > indicatorList.Count - 1) return null;
|
||||
return indicatorList[indicatorIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -731,7 +731,6 @@ namespace XCharts
|
||||
var serieData = new SerieData()
|
||||
{
|
||||
data = new List<float>() { xValue, value },
|
||||
lastData = new List<float>() { xValue, value },
|
||||
name = dataName
|
||||
};
|
||||
serieData.index = xValue;
|
||||
@@ -760,7 +759,6 @@ namespace XCharts
|
||||
var serieData = new SerieData()
|
||||
{
|
||||
data = new List<float>() { xValue, yValue },
|
||||
lastData = new List<float>() { xValue, yValue },
|
||||
name = dataName
|
||||
};
|
||||
serieData.index = m_Data.Count;
|
||||
@@ -804,7 +802,6 @@ namespace XCharts
|
||||
for (int i = 0; i < valueList.Count; i++)
|
||||
{
|
||||
serieData.data.Add(valueList[i]);
|
||||
serieData.lastData.Add(valueList[i]);
|
||||
}
|
||||
m_Data.Add(serieData);
|
||||
return serieData;
|
||||
@@ -1041,9 +1038,9 @@ namespace XCharts
|
||||
{
|
||||
if (index >= 0 && index < m_Data.Count && values != null)
|
||||
{
|
||||
var list = m_Data[index].data;
|
||||
list.Clear();
|
||||
foreach (var v in values) list.Add(v);
|
||||
var serieData = m_Data[index];
|
||||
for (int i = 0; i < values.Count; i++)
|
||||
serieData.UpdateData(i, values[i]);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -156,7 +156,6 @@ namespace XCharts
|
||||
private List<float> m_LastData = new List<float>();
|
||||
private List<float> m_DataUpdateTime = new List<float>();
|
||||
private List<bool> m_DataUpdateFlag = new List<bool>();
|
||||
public List<float> lastData { get { return m_LastData; } internal set { m_LastData = value; } }
|
||||
|
||||
public float GetData(int index)
|
||||
{
|
||||
@@ -169,7 +168,7 @@ namespace XCharts
|
||||
|
||||
public float GetLastData(int index)
|
||||
{
|
||||
if (index >= 0 && index < lastData.Count)
|
||||
if (index >= 0 && index < m_LastData.Count)
|
||||
{
|
||||
return m_LastData[index];
|
||||
}
|
||||
@@ -219,6 +218,8 @@ namespace XCharts
|
||||
if (m_LastData.Count != m_Data.Count)
|
||||
{
|
||||
m_LastData.Clear();
|
||||
m_DataUpdateTime.Clear();
|
||||
m_DataUpdateFlag.Clear();
|
||||
for (int i = 0; i < m_Data.Count; i++)
|
||||
{
|
||||
m_LastData.Add(m_Data[i]);
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace XCharts
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(RectTransform))]
|
||||
[DisallowMultipleComponent]
|
||||
public class RadarChart : BaseChart
|
||||
public partial class RadarChart : BaseChart
|
||||
{
|
||||
private const string INDICATOR_TEXT = "indicator";
|
||||
|
||||
@@ -24,21 +24,6 @@ namespace XCharts
|
||||
private List<Radar> m_CheckRadars = new List<Radar>();
|
||||
private bool m_IsEnterLegendButtom;
|
||||
|
||||
public List<Radar> radars { get { return m_Radars; } }
|
||||
|
||||
/// <summary>
|
||||
/// 移除所有数据,包含指示器数据。
|
||||
/// </summary>
|
||||
public override void RemoveData()
|
||||
{
|
||||
base.RemoveData();
|
||||
foreach (var radar in m_Radars)
|
||||
{
|
||||
radar.indicatorList.Clear();
|
||||
}
|
||||
m_CheckRadars.Clear();
|
||||
}
|
||||
|
||||
protected override void OnLegendButtonClick(int index, string legendName, bool show)
|
||||
{
|
||||
bool active = CheckDataShow(legendName, show);
|
||||
|
||||
Reference in New Issue
Block a user