修复Pie在最后的几个数据都为0时Label显示不正常的问题 (#240)

This commit is contained in:
monitor1394
2023-01-06 22:51:02 +08:00
parent 8288e75445
commit bda6fc7978
3 changed files with 7 additions and 3 deletions

View File

@@ -65,6 +65,7 @@ slug: /changelog
## master
* (2023.01.06) 修复`Pie`在最后的几个数据都为0时`Label`显示不正常的问题 (#240)
* (2023.01.03) 删除`Serie``MarkColor`,增加`ItemStyle``MarkColor`
* (2022.12.29) 增加`Editor``List``+`添加编辑功能
* (2022.12.29) 修复`UpdateXYData()`接口影响数据精度的问题 (#238)

View File

@@ -217,7 +217,9 @@ namespace XCharts.Runtime
{
var currAngle = serieData.context.halfAngle;
var offset = labelLine.lineLength2 + serieData.labelObject.GetTextWidth() / 2;
if ((currAngle - serie.context.startAngle) % 360 > 180)
var angle = (currAngle - serie.context.startAngle) % 360;
var isLeft = angle > 180 || (angle == 0 && serieData.context.startAngle > 0);
if (isLeft)
return serieData.context.labelPosition + new Vector3(-offset, 0, 0);
else
return serieData.context.labelPosition + new Vector3(offset, 0, 0);

View File

@@ -491,8 +491,9 @@ namespace XCharts.Runtime
pos6 = pos0 + Vector3.left * lineCircleDiff;
pos4 = pos6 + Vector3.left * r4;
}
var pos5X = (currAngle - startAngle) % 360 > 180 ?
pos2.x - labelLine.lineLength2 : pos2.x + labelLine.lineLength2;
var diffAngle = (currAngle - startAngle) % 360;
var isLeft = diffAngle > 180 || (diffAngle == 0 && serieData.context.startAngle > 0);
var pos5X = isLeft?pos2.x - labelLine.lineLength2 : pos2.x + labelLine.lineLength2;
var pos5 = new Vector3(pos5X, pos2.y);
var angle = Vector3.Angle(pos1 - center, pos2 - pos1);
if (angle > 15)