修复PieChart在设置Space参数后动画绘制异常的问题

This commit is contained in:
monitor1394
2020-04-16 09:36:03 +08:00
parent 753b1d5b2b
commit 6290b9ae91

View File

@@ -655,17 +655,24 @@ namespace XCharts
realCenter += borderDiff * middleDire;
borderAngle = 2 * Mathf.Asin(borderWidth / (2 * radius));
realStartAngle = realStartAngle + borderAngle;
realToAngle = realToAngle - borderAngle;
if (realToAngle < realStartAngle)
{
realToAngle = realStartAngle;
p2 = GetPos(p, radius, realStartAngle);
}
else
{
var borderX1 = GetPos(p, radius, realStartAngle);
DrawPolygon(vh, realCenter, spaceCenter, p2, borderX1, borderColor);
p2 = borderX1;
realToAngle = realToAngle - borderAngle;
if (realToAngle < realStartAngle) realToAngle = realStartAngle;
var borderX2 = GetPos(p, radius, realToAngle);
var pEnd = GetPos(p, radius, toAngle - spaceAngle);
DrawPolygon(vh, realCenter, borderX2, pEnd, spaceCenter, borderColor);
}
}
}
float segmentAngle = (realToAngle - realStartAngle) / segments;
for (int i = 0; i <= segments; i++)
{
@@ -675,6 +682,8 @@ namespace XCharts
p2 = p3;
}
if (needBorder || needSpace)
{
if (realToAngle > realStartAngle)
{
var borderX2 = p + radius * GetDire(realToAngle);
DrawTriangle(vh, realCenter, p2, borderX2, toColor, color, color);
@@ -687,6 +696,7 @@ namespace XCharts
}
}
}
}
private static Vector3 GetPos(Vector3 center, float radius, float angle, bool isDegree = false)
{