- ベストアンサー
円弧の始点、終点、回り角度から中心点を求める
円弧の始点座標、終点座標及び回り角度から円弧の中心点座標を求めることは可能でしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
中心の座標を変数において, 「2点までの距離が等しい」ことと, 2点を見込む角度がわかっていることから「内積の値が決まる」という方程式を立てれば求まると思います.
その他の回答 (3)
- info22
- ベストアンサー率55% (2225/4034)
A#1にお書きの式 >vectorA = (x1-x0, y1-y0) = (xA, yA) >vectorB = (x2-x0, y2-y0) = (xB, yB) > >|vectorA| * |vectorB| * cos(α)= xA * xB + yA * yB からはx0,y0の式が1つしかできません。 これに |vectorA| = |vectorB| の式からx0,y0のもう1つの式ができます。 x0,y0についての2つの式の実数解が2組出てきますので 円の中心はA(x1,y1),B(x2,y2)を結ぶ線分の両側に対称に2つ存在します。 (x1,y1),(x2,y2),αを文字定数としたまま 公式化するには(x0,y0)の式が複雑になりすぎます。 文字定数を具体的な値にすれば、数式処理ソフト(MathematicaやMaple) を使えば即時に実数解の(x0,y0)が2組求まってきます。
お礼
皆さんありがとうございます。 別の掲示板でも質問してみたのですがこんな回答が帰ってきました。 xm = x1 + x2 ym = y1 + y2 t = 1 / tan(ang / 2) x0 = (xm - t * (y2 - y1)) / 2 y0 = (ym + t * (x2 - x1)) / 2 数値を代入するとあっているようなのですが、なぜかがよく分かりません...
- zk43
- ベストアンサー率53% (253/470)
円の中心Oは、始点Aと終点Bの垂直二等分線上にある。 その直線の方程式をy=ax+bとすると、中心Oの座標は(x,ax+b)と表せる。 これで、中心Oの座標が1変数で表わせた。 あと、△OABで余弦定理を使うと、xだけの二次方程式ができ、これを 解いてxを求めれば、中心Oの座標が求められる。 始点Aから終点Bに向かう円弧がどちらに曲がっているかによって、中心 は2つの可能性がある。
- Tacosan
- ベストアンサー率23% (3656/15482)
ん, そんな感じ. あと, vectorA と vectorB の長さが等しいという条件が必要です. で, 変数 2個に条件 2つだから解けるはず.
お礼
すみません、よく分からないのですが 仮に 始点(x1,y1)、終点(x2,y2)、回り角度α 中心点(x0,y0) とし vectorA = (x1-x0, y1-y0) = (xA, yA) vectorB = (x2-x0, y2-y0) = (xB, yB) |vectorA| * |vectorB| * cos(α)= xA * xB + yA * yB みたいな事ですか?