首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 繪製圓弧:已知兩端點、中點與角度求圓心半徑再調用 drawArc

     編輯:程式設計綜合問答

給定圓弧兩端點、一中點及對應角度,需計算圓心、半徑、起始角、掃描角,再用 Graphics.drawArc 繪製。

幾何解法:三點定圓

  1. 設三點 P1(x1,y1)、P2(x2,y2)、Pm(xm,ym)。
  2. 求 P1P2 中垂線與 P1Pm 中垂線交點 → 圓心 O(cx,cy)。
  3. 半徑 r = distance(O, P1)。
  4. 驗證:angle(P1,O,P2) 是否等於給定角度 (餘弦定理)。不等則三點不共圓,需改橢圓擬合 (複雜得多)。
  5. 起始角:atan2(y1-cy, x1-cx) 轉度數 (0° 為 +X 軸)。
  6. 掃描角:給定角度 (順時針/逆時針視 API 定義)。

Java 繪製代碼

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 擬合貝茲曲線近似。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved