mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-27 19:50:10 +00:00
修复PieChart在设置Space参数后动画绘制异常的问题
This commit is contained in:
@@ -655,15 +655,22 @@ namespace XCharts
|
|||||||
realCenter += borderDiff * middleDire;
|
realCenter += borderDiff * middleDire;
|
||||||
borderAngle = 2 * Mathf.Asin(borderWidth / (2 * radius));
|
borderAngle = 2 * Mathf.Asin(borderWidth / (2 * radius));
|
||||||
realStartAngle = realStartAngle + borderAngle;
|
realStartAngle = realStartAngle + borderAngle;
|
||||||
var borderX1 = GetPos(p, radius, realStartAngle);
|
|
||||||
DrawPolygon(vh, realCenter, spaceCenter, p2, borderX1, borderColor);
|
|
||||||
p2 = borderX1;
|
|
||||||
|
|
||||||
realToAngle = realToAngle - borderAngle;
|
realToAngle = realToAngle - borderAngle;
|
||||||
if (realToAngle < realStartAngle) realToAngle = realStartAngle;
|
if (realToAngle < realStartAngle)
|
||||||
var borderX2 = GetPos(p, radius, realToAngle);
|
{
|
||||||
var pEnd = GetPos(p, radius, toAngle - spaceAngle);
|
realToAngle = realStartAngle;
|
||||||
DrawPolygon(vh, realCenter, borderX2, pEnd, spaceCenter, borderColor);
|
p2 = GetPos(p, radius, realStartAngle);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var borderX1 = GetPos(p, radius, realStartAngle);
|
||||||
|
DrawPolygon(vh, realCenter, spaceCenter, p2, borderX1, borderColor);
|
||||||
|
p2 = borderX1;
|
||||||
|
|
||||||
|
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;
|
float segmentAngle = (realToAngle - realStartAngle) / segments;
|
||||||
@@ -676,14 +683,17 @@ namespace XCharts
|
|||||||
}
|
}
|
||||||
if (needBorder || needSpace)
|
if (needBorder || needSpace)
|
||||||
{
|
{
|
||||||
var borderX2 = p + radius * GetDire(realToAngle);
|
if (realToAngle > realStartAngle)
|
||||||
DrawTriangle(vh, realCenter, p2, borderX2, toColor, color, color);
|
|
||||||
if (needBorder)
|
|
||||||
{
|
{
|
||||||
var realStartDegree = (realStartAngle - borderAngle) * Mathf.Rad2Deg;
|
var borderX2 = p + radius * GetDire(realToAngle);
|
||||||
var realToDegree = (realToAngle + borderAngle) * Mathf.Rad2Deg;
|
DrawTriangle(vh, realCenter, p2, borderX2, toColor, color, color);
|
||||||
DrawDoughnut(vh, p, radius, radius + borderWidth, borderColor, Color.clear, realStartDegree,
|
if (needBorder)
|
||||||
realToDegree, smoothness);
|
{
|
||||||
|
var realStartDegree = (realStartAngle - borderAngle) * Mathf.Rad2Deg;
|
||||||
|
var realToDegree = (realToAngle + borderAngle) * Mathf.Rad2Deg;
|
||||||
|
DrawDoughnut(vh, p, radius, radius + borderWidth, borderColor, Color.clear, realStartDegree,
|
||||||
|
realToDegree, smoothness);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user