簡體   English   中英

根據2個點和半徑繪制圓弧

[英]Draw an arc based on 2 Points and radius

我正在嘗試在面板內繪制一個Arc2D對象。 但是我不確定如何計算。 我給出的是起點Point2D和終點Point2D和半徑。 問題在於,當半徑改變時,startAngle和AngleExtent參數每次都不同。 另一個問題是,由於半徑發生變化,因此每次包含圓弧的“擬”圓的中心都在不同的點,另一個參數根據輸入而變化,所以我無法使用(或不知道如何)使用setCenter()方法。

任何幫助表示贊賞!

兩個點和一個半徑定義了兩個圓弧(二維)。 您可以通過計算以兩個點為中心的半徑r的兩個Circle的交點(java.awt.geom.Area.intersects)來找到它們的中心點。 圓弧的圓心將是該區域周界上兩個初始點之間的點。

您不僅需要這些。 您需要兩個點,即半徑和凹度。

想象兩個端點處的兩個圓,每個圓的半徑為半徑。 它們在兩個不同的點相交(假設可以繪制)。 其中之一是您的中心點,您可以通過知道凹度來選擇哪一個(即圓弧是向上還是向下)。

使用選定的中心點繪制弧線,並從一個端點到另一個端點。

您可以在此處找到用於找到兩個圓的交點的公式: http : //mathworld.wolfram.com/Circle-CircleIntersection.html

注意,最好有兩個交點。 如果為零或無窮大,則您將無法在它們之間繪制圓弧(您的圓弧無法跨越,或者您的圓弧長度為零)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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