From 573f9efcaf1284ee84da1e0dae1efd9c2f3721a6 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Sat, 21 Oct 2023 22:08:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D`Pie`=E6=9C=890=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=97=B6`Label`=E7=9A=84=E4=BD=8D=E7=BD=AE=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation~/zh/changelog.md | 1 + Runtime/Serie/Pie/PieHandler.cs | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) 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 {