[英]How do draw text in middle of arc? (for pie chart)
我正在使用对drawArc
的一系列调用来绘制饼图, drawArc
所示:
g.fillArc(x, y, w, h, startAngle, arcAngle);
我无法解决的是如何在圆弧的中间显示文本,以显示%。 是否可以使用一些方程式获取绘制的任何弧的中心点?
圆弧的中心点是
cx = x + w/2
cy = y + h/2
圆弧的中间角度为
Fi = startAngle + arcAngle/2
角度为Fi时的半径为 (由于使用w / h代替a / b而增加了0.5)
r = 0.5 * w * h / Sqrt((h*Cos(Fi))^2 + (w*Sin(Fi))^2)
圆弧的中点是
mx = cx + r * Cos(Fi)
my = cy + r * Sin(Fi)
例子
x = 100 y=100 w=400 h=200
start = 0 sweep = 90 degrees = Pi/2
cx = 300 cy = 200
fi = pi/4
r = 200 * 100 / Sqrt((200^2 * 1/2 + 100^2 * 1/2)) =
20000 / Sqrt(20000 + 5000) =
20000 / 158 = 126
mx = 300 + 126 * 0.707 = 389
my = 200 + 253 * 0.707 = 289
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.