給定圓弧兩端點、一中點及對應角度,需計算圓心、半徑、起始角、掃描角,再用 Graphics.drawArc 繪製。
P1(x1,y1)、P2(x2,y2)、Pm(xm,ym)。P1P2 中垂線與 P1Pm 中垂線交點 → 圓心 O(cx,cy)。r = distance(O, P1)。angle(P1,O,P2) 是否等於給定角度 (餘弦定理)。不等則三點不共圓,需改橢圓擬合 (複雜得多)。atan2(y1-cy, x1-cx) 轉度數 (0° 為 +X 軸)。int x = (int)(cx - r);
int y = (int)(cy - r);
int w = (int)(2*r);
int h = (int)(2*r);
int startAngle = (int)Math.toDegrees(Math.atan2(y1-cy, x1-cx));
int arcAngle = givenAngleDegrees; // 正為逆時針
g.drawArc(x, y, w, h, startAngle, arcAngle);
drawArc 參數為外接矩形 (x,y,w,h) 而非圓心。Path2D 配合 quadTo/curveTo 擬合貝茲曲線近似。