[bug] fix multipe grid error (#210)

This commit is contained in:
monitor1394
2022-07-05 21:43:09 +08:00
parent a499002426
commit 9aa8431432
11 changed files with 33 additions and 73 deletions

View File

@@ -56,6 +56,7 @@
## master
* (2022.07.05) 修复`Chart`里有多个坐标系时绘制异常的问题 (#210)
* (2022.07.04) 增加`Settings``axisMaxSplitNumber`参数设置`Axis`的最大分隔段数
* (2022.07.04) 修复`Axis`在设置`offset``Tick`绘制位置异常的问题 (#209)
* (2022.07.03) 优化`AxisLabel``formatterFunction`自定义委托

View File

@@ -132,13 +132,6 @@ namespace XCharts.Runtime
SetValueWithKInfo(s_Sb, "s-vert", vertCount);
SetValueWithKInfo(s_Sb, "t-vert", m_Chart.m_TopPainterVertCount, false);
var serie0 = m_Chart.GetSerie(0);
for (int i = 0; i < serie0.dataCount; i++)
{
var serieData = serie0.data[i];
s_Sb.AppendFormat("{0}:{1}\n", i, serieData.interact.targetVaue);
}
m_Label.SetText(s_Sb.ToString());
}
}

View File

@@ -23,7 +23,7 @@ namespace XCharts.Runtime
[SerializeField][Range(1, 10)] protected float m_CicleSmoothness = 2f;
[SerializeField] protected float m_LegendIconLineWidth = 2;
[SerializeField] private float[] m_LegendIconCornerRadius = new float[] { 0.25f, 0.25f, 0.25f, 0.25f };
[SerializeField][Since("v3.1.0")] protected float m_AxisMaxSplitNumber = 20;
[SerializeField][Since("v3.1.0")] protected float m_AxisMaxSplitNumber = 50;
public bool show { get { return m_Show; } }
/// <summary>

View File

@@ -199,6 +199,7 @@ namespace XCharts.Runtime
private ISerieContainer GetPointerContainerAndSeries(Tooltip tooltip, List<Serie> list)
{
list.Clear();
ISerieContainer target = null;
for (int i = chart.components.Count - 1; i >= 0; i--)
{
var component = chart.components[i];
@@ -230,11 +231,11 @@ namespace XCharts.Runtime
chart.RefreshTopPainter();
}
}
return container;
target = container;
}
}
}
return null;
return target;
}
private void UpdateAxisPointerDataIndex(Serie serie, XAxis xAxis, YAxis yAxis, GridCoord grid, bool isTriggerAxis)

View File

@@ -58,6 +58,11 @@ namespace XCharts.Runtime
{
m_Active = flag && tooltip.showContent;
ChartHelper.SetActive(gameObject, m_Active);
if (!flag)
{
foreach (var item in m_Items)
item.gameObject.SetActive(false);
}
}
public void Refresh()

View File

@@ -423,5 +423,22 @@ namespace XCharts.Runtime
}
return null;
}
internal bool GetSerieGridCoordAxis(Serie serie, out Axis axis, out Axis relativedAxis)
{
var yAxis = GetChartComponent<YAxis>(serie.yAxisIndex);
var isY = yAxis.IsCategory();
if (isY)
{
axis = yAxis;
relativedAxis = GetChartComponent<XAxis>(serie.xAxisIndex);
}
else
{
axis = GetChartComponent<XAxis>(serie.xAxisIndex);
relativedAxis = yAxis;
}
return isY;
}
}
}

View File

@@ -9,7 +9,7 @@ namespace XCharts.Runtime
[System.Serializable]
public class MainComponent : IComparable
{
public int instanceId { get; internal set; }
public int instanceId { get { return index; } }
public int index { get; internal set; }
protected bool m_VertsDirty;
protected bool m_ComponentDirty;

View File

@@ -128,21 +128,9 @@ namespace XCharts.Runtime
if (!serie.show || serie.animation.HasFadeOut())
return;
var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components);
Axis axis;
Axis relativedAxis;
if (isY)
{
axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
}
else
{
axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
}
var isY = chart.GetSerieGridCoordAxis(serie, out axis, out relativedAxis);
m_SerieGrid = chart.GetChartComponent<GridCoord>(axis.gridIndex);
if (axis == null)

View File

@@ -104,21 +104,9 @@ namespace XCharts.Runtime
if (!serie.show || serie.animation.HasFadeOut())
return;
var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components);
Axis axis;
Axis relativedAxis;
if (isY)
{
axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
}
else
{
axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
}
var isY = chart.GetSerieGridCoordAxis(serie, out axis, out relativedAxis);
m_SerieGrid = chart.GetChartComponent<GridCoord>(axis.gridIndex);
if (axis == null)

View File

@@ -145,21 +145,11 @@ namespace XCharts.Runtime
var lineArrow = serie.lineArrow;
var visualMap = chart.GetVisualMapOfSerie(serie);
var isVisualMapGradient = VisualMapHelper.IsNeedLineGradient(visualMap);
var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components);
Axis axis;
Axis relativedAxis;
var isY = chart.GetSerieGridCoordAxis(serie, out axis, out relativedAxis);
if (isY)
{
axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
}
else
{
axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
}
for (int i = 0; i < count; i++)
{
var serieData = serie.GetSerieData(i);
@@ -270,21 +260,9 @@ namespace XCharts.Runtime
if (serie.animation.HasFadeOut())
return;
var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components);
Axis axis;
Axis relativedAxis;
if (isY)
{
axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
}
else
{
axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
}
var isY = chart.GetSerieGridCoordAxis(serie, out axis, out relativedAxis);
if (axis == null)
return;

View File

@@ -149,21 +149,10 @@ namespace XCharts.Runtime
if (serie.animation.HasFadeOut())
return;
var isY = ComponentHelper.IsAnyCategoryOfYAxis(chart.components);
Axis axis;
Axis relativedAxis;
var isY = chart.GetSerieGridCoordAxis(serie, out axis, out relativedAxis);
if (isY)
{
axis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
relativedAxis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
}
else
{
axis = chart.GetChartComponent<XAxis>(serie.xAxisIndex);
relativedAxis = chart.GetChartComponent<YAxis>(serie.yAxisIndex);
}
m_SerieGrid = chart.GetChartComponent<GridCoord>(axis.gridIndex);
if (axis == null)