优化Scatter类型的Serie支持Log轴#68

This commit is contained in:
monitor1394
2020-07-08 09:22:47 +08:00
parent 2a74388777
commit cb22db45d7
2 changed files with 17 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
# 更新日志
* (2020.07.08) 优化`Scatter`类型的`Serie`支持`Log`#68
* (2020.07.07) 修复`SerieLabel`位置错乱的问题
* (2020.07.07) 增加`Tooltip``offset`参数配置偏移
* (2020.07.06) 增加`LiquidChart`水位图

View File

@@ -40,8 +40,8 @@ namespace XCharts
if (serieData.IsDataChanged()) dataChanging = true;
float pX = m_CoordinateX + xAxis.axisLine.width;
float pY = m_CoordinateY + yAxis.axisLine.width;
float xDataHig = (xValue - xAxis.runtimeMinValue) / (xAxis.runtimeMaxValue - xAxis.runtimeMinValue) * m_CoordinateWidth;
float yDataHig = (yValue - yAxis.runtimeMinValue) / (yAxis.runtimeMaxValue - yAxis.runtimeMinValue) * m_CoordinateHeight;
float xDataHig = GetDataHig(xAxis, xValue, m_CoordinateWidth);
float yDataHig = GetDataHig(yAxis, yValue, m_CoordinateHeight);
var pos = new Vector3(pX + xDataHig, pY + yDataHig);
serie.dataPoints.Add(pos);
serieData.runtimePosition = pos;
@@ -83,5 +83,19 @@ namespace XCharts
RefreshChart();
}
}
private float GetDataHig(Axis axis, float value, float totalWidth)
{
if (axis.IsLog())
{
int minIndex = axis.runtimeMinLogIndex;
float nowIndex = axis.GetLogValue(value);
return (nowIndex - minIndex) / (axis.splitNumber - 1) * totalWidth;
}
else
{
return (value - axis.runtimeMinValue) / (axis.runtimeMaxValue - axis.runtimeMinValue) * totalWidth;
}
}
}
}