mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-24 18:00:26 +00:00
增加LiquidChart水位图
This commit is contained in:
@@ -44,6 +44,7 @@ namespace XCharts
|
||||
|
||||
internal static Color GetItemColor(Serie serie, SerieData serieData, ThemeInfo theme, int index, bool highlight)
|
||||
{
|
||||
if (serie == null) return Color.clear;
|
||||
if (highlight)
|
||||
{
|
||||
var itemStyleEmphasis = GetItemStyleEmphasis(serie, serieData);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
@@ -41,11 +42,12 @@ namespace XCharts
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateLabelText(Series series, ThemeInfo themeInfo)
|
||||
public static void UpdateLabelText(Series series, ThemeInfo themeInfo, List<string> legendRealShowName)
|
||||
{
|
||||
foreach (var serie in series.list)
|
||||
{
|
||||
if (!serie.label.show) continue;
|
||||
var colorIndex = legendRealShowName.IndexOf(serie.name);
|
||||
switch (serie.type)
|
||||
{
|
||||
case SerieType.Gauge:
|
||||
@@ -54,6 +56,9 @@ namespace XCharts
|
||||
case SerieType.Ring:
|
||||
SetRingLabelText(serie, themeInfo);
|
||||
break;
|
||||
case SerieType.Liquid:
|
||||
SetLiquidLabelText(serie, themeInfo, colorIndex);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -176,6 +181,28 @@ namespace XCharts
|
||||
}
|
||||
}
|
||||
|
||||
private static void SetLiquidLabelText(Serie serie, ThemeInfo themeInfo, int colorIndex)
|
||||
{
|
||||
var serieData = serie.GetSerieData(0);
|
||||
if (serieData == null) return;
|
||||
var serieLabel = SerieHelper.GetSerieLabel(serie, serieData, serieData.highlighted);
|
||||
if (serieLabel.show && serieData.labelObject != null)
|
||||
{
|
||||
if (!serie.show || !serieData.show)
|
||||
{
|
||||
serieData.SetLabelActive(false);
|
||||
return;
|
||||
}
|
||||
var value = serieData.GetData(1);
|
||||
var total = serie.max - serie.min;
|
||||
var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total);
|
||||
serieData.SetLabelActive(true);
|
||||
serieData.labelObject.SetText(content);
|
||||
serieData.labelObject.SetLabelColor(GetLabelColor(serie, themeInfo, colorIndex));
|
||||
serieData.labelObject.SetLabelPosition(serieData.labelPosition + serieLabel.offset);
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdatePieLabelPosition(Serie serie, SerieData serieData)
|
||||
{
|
||||
if (serieData.labelObject == null) return;
|
||||
|
||||
@@ -191,6 +191,15 @@ namespace XCharts
|
||||
return GetLastStackSerie(series, serie);
|
||||
}
|
||||
|
||||
internal static Serie GetSerieByVesselIndex(Series series, int vesselIndex)
|
||||
{
|
||||
foreach (var serie in series.list)
|
||||
{
|
||||
if (serie.vesselIndex == vesselIndex) return serie;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 是否由系列在用指定索引的axis
|
||||
/// </summary>
|
||||
|
||||
39
Runtime/Internal/Helper/VesselHelper.cs
Normal file
39
Runtime/Internal/Helper/VesselHelper.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
public static class VesselHelper
|
||||
{
|
||||
internal static Color GetColor(Vessel vessel, Serie serie, ThemeInfo themeInfo, List<string> legendRealShowName)
|
||||
{
|
||||
if (serie != null && vessel.autoColor)
|
||||
{
|
||||
var colorIndex = legendRealShowName.IndexOf(serie.name);
|
||||
return SerieHelper.GetItemColor(serie, null, themeInfo, colorIndex, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
return vessel.color;
|
||||
}
|
||||
}
|
||||
|
||||
internal static void UpdateVesselCenter(Vessel vessel, Vector3 chartPosition, float chartWidth, float chartHeight)
|
||||
{
|
||||
if (vessel.center.Length < 2) return;
|
||||
var centerX = vessel.center[0] <= 1 ? chartWidth * vessel.center[0] : vessel.center[0];
|
||||
var centerY = vessel.center[1] <= 1 ? chartHeight * vessel.center[1] : vessel.center[1];
|
||||
var checkWidth = Mathf.Min(chartWidth, chartHeight);
|
||||
vessel.runtimeCenterPos = chartPosition + new Vector3(centerX, centerY);
|
||||
vessel.runtimeRadius = ChartHelper.GetRuntimeRelativeOrAbsoluteValue(vessel.radius, checkWidth);
|
||||
vessel.runtimeInnerRadius = vessel.runtimeRadius - vessel.shapeWidth - vessel.gap;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Runtime/Internal/Helper/VesselHelper.cs.meta
Normal file
11
Runtime/Internal/Helper/VesselHelper.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c0c82cb73437a4004bf946cf4dcaa567
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user