private void UpdateAxisLabel(Serie serie) { var show = serie.gaugeAxis.show && serie.gaugeAxis.axisLabel.show; serie.gaugeAxis.SetLabelObjectActive(show); if (!show) { return; } var count = serie.splitNumber > 36 ? 36 : serie.splitNumber; var startAngle = serie.startAngle; var totalAngle = serie.endAngle - serie.startAngle; var totalValue = serie.max - serie.min; var diffAngle = totalAngle / count; var diffValue = totalValue / count; var radius = serie.runtimeInsideRadius - serie.gaugeAxis.axisLabel.margin; var serieData = serie.GetSerieData(0); var customLabelText = serie.gaugeAxis.axisLabelText; for (int j = 0; j <= count; j++) { var angle = serie.startAngle + j * diffAngle; var value = serie.min + j * diffValue; var pos = ChartHelper.GetPosition(serie.runtimeCenterPos, angle, radius); var text = customLabelText != null && j < customLabelText.Count ? customLabelText[j] : SerieLabelHelper.GetFormatterContent(serie, serieData, value, totalValue, serie.gaugeAxis.axisLabel, Color.clear); serie.gaugeAxis.SetLabelObjectText(j, text); serie.gaugeAxis.SetLabelObjectPosition(j, pos + serie.gaugeAxis.axisLabel.offset); } }
public static void SetLiquidLabelText(Serie serie, ChartTheme theme, 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, theme, colorIndex)); serieData.labelObject.SetLabelPosition(serieData.labelPosition + serieLabel.offset); } }
public void RefreshLabel() { for (int i = 0; i < chart.series.Count; i++) { var serie = chart.series.GetSerie(i); if (serie.type != SerieType.Radar) { continue; } if (!serie.show && serie.radarType != RadarType.Single) { continue; } var radar = chart.GetRadar(serie.radarIndex); if (radar == null) { continue; } var center = radar.runtimeCenterPos; for (int n = 0; n < serie.dataCount; n++) { var serieData = serie.data[n]; if (serieData.labelObject == null) { continue; } var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); var iconStyle = SerieHelper.GetIconStyle(serie, serieData); var labelPos = serieData.labelPosition; if (serieLabel.margin != 0) { labelPos += serieLabel.margin * (labelPos - center).normalized; } serieData.labelObject.SetPosition(labelPos); serieData.labelObject.UpdateIcon(iconStyle); if (serie.show && serieLabel.show && serieData.canShowLabel) { var value = serieData.GetCurrData(1); var max = radar.GetIndicatorMax(n); SerieLabelHelper.ResetLabel(serieData.labelObject.label, serieLabel, chart.theme, i); serieData.SetLabelActive(serieData.labelPosition != Vector3.zero); serieData.labelObject.SetLabelPosition(serieLabel.offset); var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, max, serieLabel, Color.clear); if (serieData.labelObject.SetText(content)) { chart.RefreshPainter(serie); } } else { serieData.SetLabelActive(false); } } } }
protected override void OnRefreshLabel() { for (int i = 0; i < m_Series.Count; i++) { var serie = m_Series.GetSerie(i); if (!serie.show && serie.radarType != RadarType.Single) { continue; } var radar = m_Radars[serie.radarIndex]; var center = radar.runtimeCenterPos; for (int n = 0; n < serie.dataCount; n++) { var serieData = serie.data[n]; if (serieData.labelObject == null) { continue; } var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); var labelPos = serieData.labelPosition; if (serieLabel.margin != 0) { labelPos += serieLabel.margin * (labelPos - center).normalized; } serieData.labelObject.SetPosition(labelPos); serieData.labelObject.UpdateIcon(serieData.iconStyle); if (serie.show && serieLabel.show && serieData.canShowLabel) { var value = serieData.GetCurrData(1); var max = radar.GetIndicatorMax(n); SerieLabelHelper.ResetLabel(serieData, serieLabel, themeInfo, i); serieData.SetLabelActive(serieData.labelPosition != Vector3.zero); serieData.labelObject.SetLabelPosition(serieLabel.offset); var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, max, serieLabel); if (serieData.labelObject.SetText(content)) { RefreshChart(); } } else { serieData.SetLabelActive(false); } } } }
private static void SetGaugeLabelText(Serie serie) { var serieData = serie.GetSerieData(0); if (serieData != null) { if (serieData.IsInitLabel()) { var value = serieData.GetData(1); var total = serie.max; var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total); serieData.SetLabelText(content); serieData.SetLabelPosition(serie.runtimeCenterPos + serie.label.offset); if (serie.label.color != Color.clear) { serieData.SetLabelColor(serie.label.color); } } } }
public static void SetRingLabelText(Serie serie, ChartTheme theme) { for (int i = 0; i < serie.dataCount; i++) { var serieData = serie.data[i]; var serieLabel = SerieHelper.GetSerieLabel(serie, serieData, serieData.highlighted); if (serieLabel.show && serieData.labelObject != null) { if (!serie.show || !serieData.show) { serieData.SetLabelActive(false); continue; } var value = serieData.GetData(0); var total = serieData.GetData(1); var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total); serieData.SetLabelActive(true); serieData.labelObject.SetText(content); serieData.labelObject.SetLabelColor(GetLabelColor(serie, theme, i)); if (serie.label.position == SerieLabel.Position.Bottom) { var labelWidth = serieData.GetLabelWidth(); if (serie.clockwise) { serieData.labelObject.SetLabelPosition(serieData.labelPosition - new Vector3(labelWidth / 2, 0)); } else { serieData.labelObject.SetLabelPosition(serieData.labelPosition + new Vector3(labelWidth / 2, 0)); } } else { serieData.labelObject.SetLabelPosition(serieData.labelPosition); } } } }
public static void SetGaugeLabelText(Serie serie) { var serieData = serie.GetSerieData(0); if (serieData == null) { return; } if (serieData.labelObject == null) { return; } var value = serieData.GetData(1); var total = serie.max; var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total); serieData.labelObject.SetText(content); serieData.labelObject.SetLabelPosition(serie.runtimeCenterPos + serie.label.offset); if (!ChartHelper.IsClearColor(serie.label.textStyle.color)) { serieData.labelObject.label.SetColor(serie.label.textStyle.color); } }
private void DrawLabel(Serie serie, int dataIndex, SerieData serieData, Color serieColor) { if (serieData.labelObject == null) { return; } var currAngle = serieData.runtimePieHalfAngle; var isHighlight = (serieData.highlighted && serie.emphasis.label.show); var serieLabel = SerieHelper.GetSerieLabel(serie, serieData); var showLabel = ((serieLabel.show || isHighlight) && serieData.canShowLabel); if (showLabel || serieData.iconStyle.show) { serieData.SetLabelActive(showLabel); float rotate = 0; bool isInsidePosition = serieLabel.position == SerieLabel.Position.Inside; if (serieLabel.rotate > 0 && isInsidePosition) { if (currAngle > 180) { rotate += 270 - currAngle; } else { rotate += -(currAngle - 90); } } Color color = serieColor; if (isHighlight) { if (!ChartHelper.IsClearColor(serie.emphasis.label.color)) { color = serie.emphasis.label.color; } } else if (!ChartHelper.IsClearColor(serieLabel.color)) { color = serieLabel.color; } else { color = isInsidePosition ? Color.white : serieColor; } var fontSize = isHighlight ? serie.emphasis.label.fontSize : serieLabel.fontSize; var fontStyle = isHighlight ? serie.emphasis.label.fontStyle : serieLabel.fontStyle; serieData.labelObject.label.color = color; serieData.labelObject.label.fontSize = fontSize; serieData.labelObject.label.fontStyle = fontStyle; serieData.labelObject.SetLabelRotate(rotate); UpdateLabelPostion(serie, serieData); if (!string.IsNullOrEmpty(serieLabel.formatter)) { var value = serieData.data[1]; var total = serie.yTotal; var content = SerieLabelHelper.GetFormatterContent(serie, serieData, value, total, serieLabel); if (serieData.labelObject.SetText(content)) { RefreshChart(); } } else { if (serieData.labelObject.SetText(serieData.name)) { RefreshChart(); } } serieData.labelObject.SetPosition(serieData.labelPosition); if (showLabel) { serieData.labelObject.SetLabelPosition(serieLabel.offset); } else { serieData.SetLabelActive(false); } } else { serieData.SetLabelActive(false); } serieData.labelObject.UpdateIcon(serieData.iconStyle); }