mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-30 05:08:48 +00:00
修复Scatter动态添加数据时图表不及时刷新的问题
This commit is contained in:
@@ -34,13 +34,13 @@ namespace XCharts.Runtime
|
|||||||
SetValue(ref needInteract, value);
|
SetValue(ref needInteract, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetValue(ref bool needInteract, float value)
|
public void SetValue(ref bool needInteract, float value, bool previousValueZero = false)
|
||||||
{
|
{
|
||||||
if (m_TargetValue != value)
|
if (m_TargetValue != value)
|
||||||
{
|
{
|
||||||
needInteract = true;
|
needInteract = true;
|
||||||
if (!m_ValueEnable)
|
if (!m_ValueEnable)
|
||||||
m_PreviousValue = value;
|
m_PreviousValue = previousValueZero ? 0 : value;
|
||||||
else
|
else
|
||||||
m_PreviousValue = m_CurrentValue;
|
m_PreviousValue = m_CurrentValue;
|
||||||
UpdateStart();
|
UpdateStart();
|
||||||
@@ -52,19 +52,6 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetValue(float value)
|
|
||||||
{
|
|
||||||
if (m_TargetValue != value)
|
|
||||||
{
|
|
||||||
if (!m_ValueEnable)
|
|
||||||
m_PreviousValue = value;
|
|
||||||
else
|
|
||||||
m_PreviousValue = m_CurrentValue;
|
|
||||||
UpdateStart();
|
|
||||||
m_TargetValue = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetPosition(ref bool needInteract, Vector3 pos)
|
public void SetPosition(ref bool needInteract, Vector3 pos)
|
||||||
{
|
{
|
||||||
if (m_TargetPosition != pos)
|
if (m_TargetPosition != pos)
|
||||||
|
|||||||
@@ -180,7 +180,8 @@ namespace XCharts.Runtime
|
|||||||
if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting, interactDuration))
|
if (!serieData.interact.TryGetValue(ref symbolSize, ref interacting, interactDuration))
|
||||||
{
|
{
|
||||||
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme.serie.scatterSymbolSize, state);
|
symbolSize = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme.serie.scatterSymbolSize, state);
|
||||||
serieData.interact.SetValue(ref interacting, symbolSize);
|
serieData.interact.SetValue(ref interacting, symbolSize, true);
|
||||||
|
serieData.interact.TryGetValue(ref symbolSize, ref interacting, interactDuration);
|
||||||
}
|
}
|
||||||
|
|
||||||
symbolSize *= rate;
|
symbolSize *= rate;
|
||||||
@@ -198,7 +199,6 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (symbolSize > 100) symbolSize = 100;
|
|
||||||
chart.DrawSymbol(vh, symbol.type, symbolSize, symbolBorder, pos,
|
chart.DrawSymbol(vh, symbol.type, symbolSize, symbolBorder, pos,
|
||||||
color, toColor, emptyColor, borderColor, symbol.gap, cornerRadius);
|
color, toColor, emptyColor, borderColor, symbol.gap, cornerRadius);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,7 +143,6 @@ namespace XCharts.Runtime
|
|||||||
if (serie.vertsDirty)
|
if (serie.vertsDirty)
|
||||||
{
|
{
|
||||||
chart.RefreshPainter(serie);
|
chart.RefreshPainter(serie);
|
||||||
serie.ResetInteract();
|
|
||||||
serie.ClearVerticesDirty();
|
serie.ClearVerticesDirty();
|
||||||
}
|
}
|
||||||
if (serie.interactDirty)
|
if (serie.interactDirty)
|
||||||
|
|||||||
@@ -673,7 +673,7 @@ namespace XCharts.Runtime
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float GetSysmbolSize(Serie serie, SerieData serieData, float defaultSize, SerieState state = SerieState.Auto)
|
public static float GetSysmbolSize(Serie serie, SerieData serieData, float defaultSize, SerieState state = SerieState.Auto, bool checkAnimation = false)
|
||||||
{
|
{
|
||||||
if (serie == null) return defaultSize;
|
if (serie == null) return defaultSize;
|
||||||
if (state == SerieState.Auto)
|
if (state == SerieState.Auto)
|
||||||
@@ -699,7 +699,7 @@ namespace XCharts.Runtime
|
|||||||
var symbol = stateStyle.symbol;
|
var symbol = stateStyle.symbol;
|
||||||
size = symbol.GetSize(serieData == null ? null : serieData.data, defaultSize);
|
size = symbol.GetSize(serieData == null ? null : serieData.data, defaultSize);
|
||||||
}
|
}
|
||||||
if (serieData != null)
|
if (serieData != null && checkAnimation)
|
||||||
{
|
{
|
||||||
size = (float)serieData.GetAddAnimationData(0, size, serie.animation.GetAdditionDuration());
|
size = (float)serieData.GetAddAnimationData(0, size, serie.animation.GetAdditionDuration());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user