完善Pie饼图的交互动画效果

This commit is contained in:
monitor1394
2023-07-27 07:17:37 +08:00
parent 758d578ad2
commit 0c09d40654
7 changed files with 37 additions and 24 deletions

View File

@@ -10,20 +10,24 @@ namespace XCharts.Runtime
[System.Serializable]
public class MLValue : ChildComponent
{
/// <summary>
/// the type of value.
/// |数值类型。
/// </summary>
public enum Type
{
/// <summary>
/// Percent form.
/// Percent value form.
/// |百分比形式。
/// </summary>
Percent,
/// <summary>
/// Absolute form.
/// Absolute value form.
/// |绝对值形式。
/// </summary>
Absolute,
/// <summary>
/// Extra form.
/// Extra value form.
/// |额外形式。
/// </summary>
Extra
@@ -34,18 +38,24 @@ namespace XCharts.Runtime
public Type type { get { return m_Type; } set { m_Type = value; } }
public float value { get { return m_Value; } set { m_Value = value; } }
public MLValue(Type type, float value)
{
m_Type = type;
m_Value = value;
}
public MLValue(float value)
{
m_Type = Type.Percent;
m_Value = value;
}
public MLValue(Type type, float value)
{
m_Type = type;
m_Value = value;
}
/// <summary>
/// Get the value by type.
/// |根据类型获取值。
/// </summary>
/// <param name="total">默认值</param>
/// <returns></returns>
public float GetValue(float total)
{
switch (m_Type)

View File

@@ -27,7 +27,7 @@ namespace XCharts.Runtime
m_LastCheckContextFlag = needCheck;
serie.context.pointerItemDataIndex = -1;
serie.context.pointerEnter = false;
serie.interact.SetValue(ref needAnimation1, lineWidth, false);
serie.interact.SetValue(ref needAnimation1, lineWidth);
foreach (var serieData in serie.data)
{
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
@@ -53,7 +53,7 @@ namespace XCharts.Runtime
if (m_LegendEnter)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];

View File

@@ -27,7 +27,7 @@ namespace XCharts.Runtime
m_LastCheckContextFlag = needCheck;
serie.context.pointerItemDataIndex = -1;
serie.context.pointerEnter = false;
serie.interact.SetValue(ref needAnimation1, lineWidth, false);
serie.interact.SetValue(ref needAnimation1, lineWidth);
foreach (var serieData in serie.data)
{
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
@@ -53,7 +53,7 @@ namespace XCharts.Runtime
if (m_LegendEnter)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];

View File

@@ -61,7 +61,7 @@ namespace XCharts.Runtime
if (m_LegendEnter)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
@@ -73,7 +73,7 @@ namespace XCharts.Runtime
else if (serie.context.isTriggerByAxis)
{
serie.context.pointerEnter = false;
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
@@ -116,7 +116,7 @@ namespace XCharts.Runtime
needInteract = true;
}
if (serie.context.pointerItemDataIndex >= 0)
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
else
serie.interact.SetValue(ref needInteract, lineWidth);
}

View File

@@ -27,7 +27,7 @@ namespace XCharts.Runtime
m_LastCheckContextFlag = needCheck;
serie.context.pointerItemDataIndex = -1;
serie.context.pointerEnter = false;
serie.interact.SetValue(ref needAnimation1, lineWidth, false);
serie.interact.SetValue(ref needAnimation1, lineWidth);
foreach (var serieData in serie.data)
{
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
@@ -53,7 +53,7 @@ namespace XCharts.Runtime
if (m_LegendEnter)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];

View File

@@ -46,7 +46,7 @@ namespace XCharts.Runtime
m_LastCheckContextFlag = needCheck;
serie.context.pointerItemDataIndex = -1;
serie.context.pointerEnter = false;
serie.interact.SetValue(ref needAnimation1, lineWidth, false);
serie.interact.SetValue(ref needAnimation1, lineWidth);
foreach (var serieData in serie.data)
{
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
@@ -72,7 +72,7 @@ namespace XCharts.Runtime
if (m_LegendEnter)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
@@ -84,7 +84,7 @@ namespace XCharts.Runtime
else if (serie.context.isTriggerByAxis)
{
serie.context.pointerEnter = true;
serie.interact.SetValue(ref needInteract, lineWidth, true, serie.animation.interaction.GetWidth(lineWidth));
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
for (int i = 0; i < serie.dataCount; i++)
{
var serieData = serie.data[i];
@@ -119,7 +119,7 @@ namespace XCharts.Runtime
{
serie.context.pointerEnter = true;
serie.context.pointerItemDataIndex = serieData.index;
serie.interact.SetValue(ref needInteract, lineWidth, true);
serie.interact.SetValue(ref needInteract, serie.animation.interaction.GetWidth(lineWidth));
}
}
if (lastIndex != serie.context.pointerItemDataIndex)

View File

@@ -127,7 +127,7 @@ namespace XCharts.Runtime
if (m_LegendEnter)
{
serieData.context.highlight = true;
serieData.interact.SetValue(ref needInteract, symbolSize, serieData.context.highlight);
serieData.interact.SetValue(ref needInteract, serie.animation.interaction.GetRadius(symbolSize));
}
else
{
@@ -164,7 +164,10 @@ namespace XCharts.Runtime
}
}
}
serieData.interact.SetValue(ref needInteract, symbolSize, serieData.context.highlight);
if (serieData.context.highlight)
serieData.interact.SetValue(ref needInteract, serie.animation.interaction.GetRadius(symbolSize));
else
serieData.interact.SetValue(ref needInteract, symbolSize);
}
}
break;