[improve][tooltip] improve tooltip for heatmap

This commit is contained in:
monitor1394
2022-09-05 13:18:00 +08:00
parent a44eca0f91
commit ce702fd1e3
6 changed files with 73 additions and 15 deletions

View File

@@ -19,6 +19,24 @@ namespace XCharts.Runtime
return 0;
}
/// <summary>
/// 获得分割网格个数,包含次刻度
/// </summary>
/// <param name="axis"></param>
/// <returns></returns>
public static int GetTotalSplitGridNum(Axis axis)
{
if (axis.IsCategory())
return axis.data.Count;
else
{
var splitNum = axis.splitNumber <= 0 ? GetSplitNumber(axis, 0, null) : axis.splitNumber;
return axis.minorTick.show ?
splitNum * axis.minorTick.splitNumber :
splitNum;
}
}
/// <summary>
/// 获得分割段数
/// </summary>
@@ -519,6 +537,34 @@ namespace XCharts.Runtime
return GetAxisPositionInternal(grid, axis, scaleWidth, value, false, true);
}
/// <summary>
/// 获得数值value在坐标轴上对应的split索引
/// </summary>
/// <param name="axis"></param>
/// <param name="value"></param>
/// <returns></returns>
public static int GetAxisValueSplitIndex(Axis axis, double value, int totalSplitNumber = -1)
{
if (axis.IsCategory())
{
return (int) value;
}
else
{
if (value == axis.context.minValue)
return 0;
else
{
if (totalSplitNumber == -1)
totalSplitNumber = GetTotalSplitGridNum(axis);
if (axis.minMaxType == Axis.AxisMinMaxType.Custom)
return Mathf.CeilToInt(((float) ((value - axis.min) / axis.max) * totalSplitNumber) - 1);
else
return Mathf.CeilToInt(((float) ((value - axis.context.minValue) / axis.context.minMaxRange) * totalSplitNumber) - 1);
}
}
}
private static float GetAxisPositionInternal(GridCoord grid, Axis axis, float scaleWidth, double value, bool includeGridXY, bool realLength)
{
var isY = axis is YAxis;
@@ -589,9 +635,5 @@ namespace XCharts.Runtime
startX += relativedAxis.context.offset;
return startX;
}
public static void UpdateAxisOffset(){
}
}
}