0

パネル内に Arc2D オブジェクトを描画しようとしています。しかし、私はそれを計算する方法がわかりません。私が与えたのは、開始 Point2D と終了 Point2D と半径です。問題は、半径が変更されると、startAngle および AngleExtent パラメータが毎回異なることです。別の問題は、半径が変化するため、円弧を含む「予定」の円の中心が毎回異なるポイントにあり、入力に基づいて変化する別のパラメーターであるため、使用できない (またはわからない) ことです方法) setCenter() メソッドを使用します。

どんな助けでも大歓迎です!

4

2 に答える 2

1

2 つの点と半径によって2 つの円弧が (2D で) 定義されます。Circle2 つの点を中心とする 2 つの半径の交点 (java.awt.geom.Area.intersects) を計算することで、それらの中心点を見つけることができますr。円弧の円の中心点は、2 つの最初の点の中間にあるその領域の周囲の点になります。

于 2012-07-08T23:30:10.510 に答える
0

それ以上のものが必要です。半径と凹面の2つのポイントが必要です。

それぞれが半径の半径を持つ2つの端点にある2つの円を想像してみてください。これらは2つの異なる点で交差します(これを描画できると仮定します)。これらの1つは中心点であり、凹面を知ることによってどちらを選択します(つまり、円弧が上下しますか)。

選択した中心点を使用して円弧を描き、一方の端点からもう一方の端点に移動します。

2つの円の交点を見つけるための式はここにあります:http: //mathworld.wolfram.com/Circle-CircleIntersection.html

ちょうど2つの交点がある方がよいことに注意してください。ゼロまたは無限大がある場合、それらの間に円弧をうまく描くことはできません(円弧がスパンしないか、円弧の長さがゼロです)。

于 2012-07-08T23:37:51.487 に答える