mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-25 18:30:14 +00:00
修复MarkLine在开启Clip后还绘制在坐标系外的问题
This commit is contained in:
@@ -78,6 +78,7 @@ slug: /changelog
|
|||||||
|
|
||||||
日志详情:
|
日志详情:
|
||||||
|
|
||||||
|
* (2023.08.25) 修复`MarkLine`在开启`Clip`后还绘制在坐标系外的问题
|
||||||
* (2023.08.24) 优化`YAxis`在数据全为0时默认设置0-1的范围
|
* (2023.08.24) 优化`YAxis`在数据全为0时默认设置0-1的范围
|
||||||
* (2023.08.23) 修复`YAxis`的`Label`可能会重复的问题
|
* (2023.08.23) 修复`YAxis`的`Label`可能会重复的问题
|
||||||
* (2023.08.22) 修复`Bar`显示隐藏时绘制表现异常的问题
|
* (2023.08.22) 修复`Bar`显示隐藏时绘制表现异常的问题
|
||||||
|
|||||||
@@ -129,6 +129,7 @@ namespace XCharts.Runtime
|
|||||||
public Vector3 runtimeCurrentEndPosition { get; internal set; }
|
public Vector3 runtimeCurrentEndPosition { get; internal set; }
|
||||||
public ChartLabel runtimeLabel { get; internal set; }
|
public ChartLabel runtimeLabel { get; internal set; }
|
||||||
public double runtimeValue { get; internal set; }
|
public double runtimeValue { get; internal set; }
|
||||||
|
public bool runtimeInGrid { get; internal set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Name of the marker, which will display as a label.
|
/// Name of the marker, which will display as a label.
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace XCharts.Runtime
|
|||||||
if (data.runtimeLabel != null)
|
if (data.runtimeLabel != null)
|
||||||
{
|
{
|
||||||
var pos = MarkLineHelper.GetLabelPosition(data);
|
var pos = MarkLineHelper.GetLabelPosition(data);
|
||||||
data.runtimeLabel.SetActive(data.label.show && pos != Vector3.zero);
|
data.runtimeLabel.SetActive(data.label.show && data.runtimeInGrid);
|
||||||
data.runtimeLabel.SetPosition(pos);
|
data.runtimeLabel.SetPosition(pos);
|
||||||
data.runtimeLabel.SetText(MarkLineHelper.GetFormatterContent(serie, data));
|
data.runtimeLabel.SetText(MarkLineHelper.GetFormatterContent(serie, data));
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@ namespace XCharts.Runtime
|
|||||||
var serie = chart.GetSerie(markLine.serieIndex);
|
var serie = chart.GetSerie(markLine.serieIndex);
|
||||||
if (!serie.show || !markLine.show) return;
|
if (!serie.show || !markLine.show) return;
|
||||||
ResetTempMarkLineGroupData(markLine);
|
ResetTempMarkLineGroupData(markLine);
|
||||||
var serieColor = (Color) chart.GetItemColor(serie);
|
var serieColor = (Color)chart.GetItemColor(serie);
|
||||||
if (m_TempGroupData.Count > 0)
|
if (m_TempGroupData.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var kv in m_TempGroupData)
|
foreach (var kv in m_TempGroupData)
|
||||||
@@ -71,7 +71,7 @@ namespace XCharts.Runtime
|
|||||||
private void InitMarkLineLabel(Serie serie, MarkLineData data, Color serieColor)
|
private void InitMarkLineLabel(Serie serie, MarkLineData data, Color serieColor)
|
||||||
{
|
{
|
||||||
data.painter = chart.m_PainterUpper;
|
data.painter = chart.m_PainterUpper;
|
||||||
data.refreshComponent = delegate()
|
data.refreshComponent = delegate ()
|
||||||
{
|
{
|
||||||
var textName = string.Format("markLine_{0}_{1}", serie.index, data.index);
|
var textName = string.Format("markLine_{0}_{1}", serie.index, data.index);
|
||||||
var content = MarkLineHelper.GetFormatterContent(serie, data);
|
var content = MarkLineHelper.GetFormatterContent(serie, data);
|
||||||
@@ -79,7 +79,7 @@ namespace XCharts.Runtime
|
|||||||
content, Color.clear, TextAnchor.MiddleCenter);
|
content, Color.clear, TextAnchor.MiddleCenter);
|
||||||
var pos = MarkLineHelper.GetLabelPosition(data);
|
var pos = MarkLineHelper.GetLabelPosition(data);
|
||||||
label.SetIconActive(false);
|
label.SetIconActive(false);
|
||||||
label.SetActive(data.label.show && pos != Vector3.zero);
|
label.SetActive(data.label.show && data.runtimeInGrid);
|
||||||
label.SetPosition(pos);
|
label.SetPosition(pos);
|
||||||
data.runtimeLabel = label;
|
data.runtimeLabel = label;
|
||||||
};
|
};
|
||||||
@@ -218,9 +218,17 @@ namespace XCharts.Runtime
|
|||||||
{
|
{
|
||||||
if (!animation.IsFinish())
|
if (!animation.IsFinish())
|
||||||
ep = Vector3.Lerp(sp, ep, animation.GetCurrDetail());
|
ep = Vector3.Lerp(sp, ep, animation.GetCurrDetail());
|
||||||
|
if ((!chart.IsInChart(sp) && !chart.IsInChart(ep)) ||
|
||||||
|
(serie.clip && !grid.Contains(sp) && !grid.Contains(ep)))
|
||||||
|
{
|
||||||
|
data.runtimeInGrid = false;
|
||||||
|
m_RefreshLabel = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
data.runtimeCurrentEndPosition = ep;
|
data.runtimeCurrentEndPosition = ep;
|
||||||
if (sp != Vector3.zero || ep != Vector3.zero)
|
if (sp != Vector3.zero || ep != Vector3.zero)
|
||||||
{
|
{
|
||||||
|
data.runtimeInGrid = true;
|
||||||
m_RefreshLabel = true;
|
m_RefreshLabel = true;
|
||||||
chart.ClampInChart(ref sp);
|
chart.ClampInChart(ref sp);
|
||||||
chart.ClampInChart(ref ep);
|
chart.ClampInChart(ref ep);
|
||||||
@@ -247,7 +255,7 @@ namespace XCharts.Runtime
|
|||||||
Color32 borderColor;
|
Color32 borderColor;
|
||||||
SerieHelper.GetSymbolInfo(out borderColor, out tickness, out cornerRadius, serie, null, chart.theme);
|
SerieHelper.GetSymbolInfo(out borderColor, out tickness, out cornerRadius, serie, null, chart.theme);
|
||||||
chart.DrawClipSymbol(vh, symbol.type, symbol.size, tickness, pos, lineColor, lineColor,
|
chart.DrawClipSymbol(vh, symbol.type, symbol.size, tickness, pos, lineColor, lineColor,
|
||||||
ColorUtil.clearColor32, borderColor, symbol.gap, true, cornerRadius, grid, startPos);
|
ColorUtil.clearColor32, borderColor, symbol.gap, serie.clip, cornerRadius, grid, startPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GetStartEndPos(Axis xAxis, Axis yAxis, GridCoord grid, double value, ref Vector3 sp, ref Vector3 ep)
|
private void GetStartEndPos(Axis xAxis, Axis yAxis, GridCoord grid, double value, ref Vector3 sp, ref Vector3 ep)
|
||||||
|
|||||||
Reference in New Issue
Block a user