mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-29 20:58:47 +00:00
修复Pie只有一个数据时设置border后显示异常的问题 (#237)
This commit is contained in:
@@ -46,6 +46,7 @@
|
||||
|
||||
## branch-2.0
|
||||
|
||||
* (2022.12.28) 修复`Pie`只有一个数据时设置`border`后显示异常的问题 (#237)
|
||||
* (2022.08.30) 修复`DataZoom`在某些情况下计算范围不准确的问题 (#221)
|
||||
|
||||
## v2.8.2
|
||||
|
||||
@@ -1183,7 +1183,8 @@ namespace XUGL
|
||||
float smoothness, int gradientType = 0, bool isYAxis = false)
|
||||
{
|
||||
if (radius == 0) return;
|
||||
if (space > 0 && Mathf.Abs(toDegree - startDegree) >= 360) space = 0;
|
||||
var isCircle = Mathf.Abs(toDegree - startDegree) >= 360;
|
||||
if (space > 0 && isCircle) space = 0;
|
||||
radius -= borderWidth;
|
||||
smoothness = (smoothness < 0 ? 2f : smoothness);
|
||||
int segments = (int) ((2 * Mathf.PI * radius) * (Mathf.Abs(toDegree - startDegree) / 360) / smoothness);
|
||||
@@ -1223,7 +1224,7 @@ namespace XUGL
|
||||
if (realToAngle < realStartAngle) realToAngle = realStartAngle;
|
||||
p2 = UGLHelper.GetPos(center, radius, realStartAngle);
|
||||
}
|
||||
if (needBorder)
|
||||
if (needBorder && !isCircle)
|
||||
{
|
||||
borderDiff = borderLineWidth / Mathf.Sin(halfAngle);
|
||||
realCenter += borderDiff * middleDire;
|
||||
@@ -1259,9 +1260,9 @@ namespace XUGL
|
||||
{
|
||||
p4 = new Vector3(p3.x, realCenter.y);
|
||||
var dist = p4.x - realCenter.x;
|
||||
var tcolor = Color32.Lerp(color, toColor, dist >= 0
|
||||
? dist / radius
|
||||
: Mathf.Min(radius + dist, radius) / radius);
|
||||
var tcolor = Color32.Lerp(color, toColor, dist >= 0 ?
|
||||
dist / radius :
|
||||
Mathf.Min(radius + dist, radius) / radius);
|
||||
if (isLeft && (i == segments || i == 0)) tcolor = toColor;
|
||||
DrawQuadrilateral(vh, lastP4, p2, p3, p4, lastColor, tcolor);
|
||||
lastP4 = p4;
|
||||
@@ -1374,6 +1375,7 @@ namespace XUGL
|
||||
insideRadius += borderWidth;
|
||||
smoothness = smoothness < 0 ? 2f : smoothness;
|
||||
Vector3 p1, p2, p3, p4, e1, e2;
|
||||
var isCircle = Mathf.Abs(toDegree - startDegree) >= 360;
|
||||
var needBorder = borderWidth != 0;
|
||||
var needSpace = space != 0;
|
||||
var diffAngle = Mathf.Abs(toDegree - startDegree) * Mathf.Deg2Rad;
|
||||
@@ -1441,7 +1443,7 @@ namespace XUGL
|
||||
p2 = UGLHelper.GetPos(center, outsideRadius, realStartOutAngle, false);
|
||||
e2 = UGLHelper.GetPos(center, outsideRadius, realToOutAngle, false);
|
||||
}
|
||||
if (needBorder)
|
||||
if (needBorder && !isCircle)
|
||||
{
|
||||
var borderDiff = borderWidth / Mathf.Sin(halfAngle);
|
||||
realCenter += Mathf.Abs(borderDiff) * middleDire;
|
||||
|
||||
Reference in New Issue
Block a user