[bug][datazoom] fix datazoom range error (#221)

This commit is contained in:
monitor1394
2022-08-30 08:10:18 +08:00
parent 6fad4fcccc
commit a7c4e24555
3 changed files with 10 additions and 8 deletions

View File

@@ -46,6 +46,8 @@
## branch-2.0
* (2022.08.30) 修复`DataZoom`在某些情况下计算范围不准确的问题 (#221)
## v2.8.2
* (2022.08.15) 发布`v2.8.2`版本

View File

@@ -712,13 +712,13 @@ namespace XCharts
int start = 0, end = 0;
if (dataZoom.runtimeInvert)
{
end = Mathf.CeilToInt(data.Count * dataZoom.end / 100);
end = Mathf.RoundToInt(data.Count * dataZoom.end / 100);
start = end - range;
if (start < 0) start = 0;
}
else
{
start = Mathf.FloorToInt(data.Count * dataZoom.start / 100);
start = Mathf.RoundToInt(data.Count * dataZoom.start / 100);
end = start + range;
if (end > data.Count) end = data.Count;
}
@@ -735,8 +735,8 @@ namespace XCharts
if (filterMinShow > data.Count) range = data.Count;
else range = filterMinShow;
}
if (range > data.Count - start - 1)
start = data.Count - range - 1;
if (range > data.Count - start)
start = data.Count - range;
filterData = data.GetRange(start, range);
}
else

View File

@@ -642,13 +642,13 @@ namespace XCharts
int start = 0, end = 0;
if (dataZoom.runtimeInvert)
{
end = Mathf.CeilToInt(data.Count * dataZoom.end / 100);
end = Mathf.RoundToInt(data.Count * dataZoom.end / 100);
start = end - range;
if (start < 0) start = 0;
}
else
{
start = Mathf.FloorToInt(data.Count * dataZoom.start / 100);
start = Mathf.RoundToInt(data.Count * dataZoom.start / 100);
end = start + range;
if (end > data.Count) end = data.Count;
}
@@ -666,8 +666,8 @@ namespace XCharts
if (dataZoom.minShowNum > data.Count) range = data.Count;
else range = dataZoom.minShowNum;
}
if (range > data.Count - start - 1)
start = data.Count - range - 1;
if (range > data.Count - start)
start = data.Count - range;
serie.m_FilterData = data.GetRange(start, range);
}
else