- ベストアンサー
連立方程式の解き方
円弧上の2点と半径から中心点を求める式を (sx-cx)^2+(sy-cy)^2=r^2 (ex-cx)^2+(ey-cy)^2=r^2 とした時、 cx = cy = の式にしたいのですが、どうしても途中で間違えてしまうのか 答えがおかしくなってしまいます。 解答だけでも構いませんが、途中の式も教えて頂けると助かります。 宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>根本的に間違っている気がします。 ..... 根本的には正しい。けど面倒なのです。 弧の両端座標と半径が与えられた場合、円の中心はその両側に想定できますね。 「正しい」というのは、とにかく解けば両方の中心座標が求まります。 「面倒」なのは、ルートを消す二乗処理をすると、無関係な解まで求まるので、チェックして排除せねばならない点です。 円の中心をどちら側か一方に決めておけば、少しは楽になるのでしょうか? 方針だけでも。 A. 弧(弦)の両端座標 P1 [sx, sy] と P2 [ex, ey] から、P1 - P2 の中点 M の座標や、P1 - P2 の傾斜比 dx : dy 、P1 - M の距離 L1 を勘定しておく。 B. 円中心 C と M の距離を Pythagoras 勘定。L2 とすると、L2 = SQRT(r^2 - L1^2) 。 C. M からの弦への垂線上で、中心側に L2 だけ離れたところが中心 C 。
その他の回答 (3)
>円弧上の2点と半径から中心点を求める式を >(sx-cx)^2+(sy-cy)^2=r^2 >(ex-cx)^2+(ey-cy)^2=r^2 >とした時、 >cx = >cy = >の式にしたい すごい! 力技ですね。強行する方針なら、 まず下式から、 ey - cy = SQRT{r^2 - (ex-cx)^2} cy = ey - SQRT{r^2 - (ex-cx)^2} この cy を上式へ代入して、cx のみの方程式を得て、それを解く。 二つの解と、(たぶん)無縁根も得られるでしょう。
お礼
ありがとうございます。 この方法を取るのが間違いなんですね。 根本的に間違っている気がします。 「円弧上の2点と半径、回転方向から中心座標を求める」というのが目的なのですが、この式を採用しようというのが間違いですね。
- nattocurry
- ベストアンサー率31% (587/1853)
間違えているかもしれない途中の計算と、おかしくなった答えを提示しましょう。
お礼
ありがとうございます。 答えは、プログラムに組み込んでおり座標が不定なので書けないのですが、やはりこの方法でやろうというのが間違いだと気付きました。
- banakona
- ベストアンサー率45% (222/489)
答えになっていないですが、該当する中心が2個あるので、円の方程式を使うのはシンドくないですか? 私なら2点の垂直2等分線上に中心があることと、三平方の定理を使って中心を求めます。やってないから、実際にやるとややこしいかもしれませんが。
お礼
ありがとうございます。 回転方向が分かっていたので、中心は一つを求める事になるのですが、この式を使って求めるのはしんどいですね。 2点間の直線の中点や傾き三平方の定理等を使って求めるのかとは思うのですが、どのような式になるのかイマイチ分からずです。
お礼
分かりやすいアドバイスをありがとうございます。 その方法で中心を求めたほうが、私が最初に書いていた式などより分かりやすいですね。 また、両端座標を中心とした同半径の円を書き、その交点が中心という方法もあるかと思うのですが、どちらの場合も求まった中心2点のどちら側を取れば良いのかが判定出来ずにいます。 円弧は、回転方向が分かっています。(右回りか左回りか) それだけで、どちら側が円弧の中心であるか判定出来るものでしょうか?