diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index 96bdfcb8..f0be7da6 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -69,6 +69,7 @@ slug: /changelog ## master +* (2023.10.21) 修复`Pie`有0数据时`Label`的位置异常的问题 * (2023.10.21) 增加`Axis`的对数轴支持子刻度 * (2023.10.19) 修复`Pie`设置玫瑰图时引导线异常的问题 * (2023.10.15) 修复`Line`设置`Animation`为`AlongPath`时动画异常的问题 (#281) diff --git a/Runtime/Serie/Pie/PieHandler.cs b/Runtime/Serie/Pie/PieHandler.cs index 76a7cded..d39c9199 100644 --- a/Runtime/Serie/Pie/PieHandler.cs +++ b/Runtime/Serie/Pie/PieHandler.cs @@ -46,9 +46,9 @@ namespace XCharts.Runtime if (labelLine != null && labelLine.show && serieData.labelObject != null) { var currAngle = serieData.context.halfAngle - serie.context.startAngle; - var isRight = currAngle % 360 < 180; + var isLeft = currAngle > 180 || (currAngle == 0 && serieData.context.startAngle > 0); var textOffset = serieData.labelObject.text.GetPreferredWidth() / 2; - return serieData.context.labelPosition + (isRight ? Vector3.right : Vector3.left) * textOffset; + return serieData.context.labelPosition + (isLeft ? Vector3.left : Vector3.right) * textOffset; } else { @@ -62,9 +62,11 @@ namespace XCharts.Runtime if (label.autoOffset) { var currAngle = serieData.context.halfAngle - serie.context.startAngle; - var isRight = currAngle % 360 < 180; - if (isRight) return offset; - else return new Vector3(-offset.x, offset.y, offset.z); + var isLeft = currAngle > 180 || (currAngle == 0 && serieData.context.startAngle > 0); + if (isLeft) + return new Vector3(-offset.x, offset.y, offset.z); + else + return offset; } else {