修复PieChartavoidLabelOverlap参数不生效的问题

This commit is contained in:
monitor1394
2021-07-05 07:12:20 +08:00
parent 3907b82bc0
commit df5fa7807b
5 changed files with 14 additions and 11 deletions

View File

@@ -263,7 +263,7 @@ namespace XCharts
startDegree = serieData.runtimePieToAngle;
SerieLabelHelper.UpdatePieLabelPosition(serie, serieData);
}
SerieLabelHelper.AvoidLabelOverlap(serie);
SerieLabelHelper.AvoidLabelOverlap(serie, chart.theme.common);
}
private float GetTotalAngle(Serie serie, float dataTotal, ref float totalAngle)
@@ -566,6 +566,8 @@ namespace XCharts
{
if (serie.type != SerieType.Pie) return -1;
var dist = Vector2.Distance(local, serie.runtimeCenterPos);
var maxRadius = serie.runtimeOutsideRadius + 3 * chart.theme.serie.pieSelectedOffset;
if (dist < serie.runtimeInsideRadius || dist > maxRadius) return -1;
Vector2 dir = local - new Vector2(serie.runtimeCenterPos.x, serie.runtimeCenterPos.y);
float angle = ChartHelper.GetAngle360(Vector2.up, dir);
for (int i = 0; i < serie.data.Count; i++)