mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-28 20:28:46 +00:00
[optimize] radar support area tooltip
This commit is contained in:
@@ -98,6 +98,7 @@ namespace XCharts.Runtime
|
||||
m_LastCheckContextFlag = needCheck;
|
||||
serie.context.pointerEnter = false;
|
||||
serie.context.pointerItemDataIndex = -1;
|
||||
var areaStyle = serie.areaStyle;
|
||||
switch (serie.radarType)
|
||||
{
|
||||
case RadarType.Multiple:
|
||||
@@ -125,6 +126,23 @@ namespace XCharts.Runtime
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!serieData.context.highlight && areaStyle != null)
|
||||
{
|
||||
var center = m_RadarCoord.context.center;
|
||||
var dataPoints = serieData.context.dataPoints;
|
||||
for (int n = 0; n < dataPoints.Count; n++)
|
||||
{
|
||||
var p1 = dataPoints[n];
|
||||
var p2 = n >= dataPoints.Count - 1 ? dataPoints[0] : dataPoints[n + 1];
|
||||
if (UGLHelper.IsPointInTriangle(p1, center, p2, chart.pointerPos))
|
||||
{
|
||||
serie.context.pointerEnter = true;
|
||||
serie.context.pointerItemDataIndex = i;
|
||||
serieData.context.highlight = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
serieData.interact.SetValue(ref needInteract, symbolSize, serieData.context.highlight);
|
||||
}
|
||||
}
|
||||
@@ -141,6 +159,23 @@ namespace XCharts.Runtime
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!serie.context.pointerEnter && areaStyle != null)
|
||||
{
|
||||
var center = m_RadarCoord.context.center;
|
||||
var dataPoints = serie.data;
|
||||
for (int n = 0; n < dataPoints.Count; n++)
|
||||
{
|
||||
var p1 = dataPoints[n];
|
||||
var p2 = n >= dataPoints.Count - 1 ? dataPoints[0] : dataPoints[n + 1];
|
||||
if (UGLHelper.IsPointInTriangle(p1.context.position, center, p2.context.position, chart.pointerPos))
|
||||
{
|
||||
serie.context.pointerEnter = true;
|
||||
serie.context.pointerItemDataIndex = n;
|
||||
p1.context.highlight = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (needInteract)
|
||||
|
||||
Reference in New Issue
Block a user