mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-22 00:20:18 +00:00
[bug][datazoom] fix datazoom range error (#221)
This commit is contained in:
@@ -46,6 +46,8 @@
|
||||
|
||||
## branch-2.0
|
||||
|
||||
* (2022.08.30) 修复`DataZoom`在某些情况下计算范围不准确的问题 (#221)
|
||||
|
||||
## v2.8.2
|
||||
|
||||
* (2022.08.15) 发布`v2.8.2`版本
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user