簡體   English   中英

如何在圓弧中間繪制文本? (用於餅圖)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM