プロが教える店舗&オフィスのセキュリティ対策術

教えて下さい。
円弧の始点、終点、半径が与えられています。
これを、公式にあてはめて中心点X、Yを求めたいのですが、
プログラムで二次方程式を扱ったことがなく、わかりません(>_<)
中心点を(a,b)とし、始点を(X1,Y1)、終点を(X2,Y2)、半径をRとします。
公式
(Y2-Y1)(b-(Y1+Y2)/2)=(X2-X1)(a-(X1+X2)/2)と、
(X1-a)^2+(Y1-b)^2 =R^2
この二つの公式で中心点が出ると言われたのですが、
プログラム方法が全くわかりません。。。
例として、始点(362.561,346.93)、終点(331.835,385.569)、半径(121.001)です。
この情報から、中心点(X,Y)を求めるにはどのようなプログラムとなるのでしょうか?
数学、プログラムとも初心者なので、具体的なプログラムを教えていただけると幸いです。
よろしくお願いします。VB6を使用しています。

A 回答 (3件)

とりあえず、こういう方程式の手順としては公式の最初のほうを


b = f(a)の形にしましょう。 
(Y2-Y1)(b-(Y1+Y2)/2)=(X2-X1)(a-(X1+X2)/2)
→(b-(Y1+Y2)/2)=(X2-X1)(a-(X1+X2)/2)/(Y2-Y1)
→b=(X2-X1)(a-(X1+X2)/2)/(Y2-Y1)+(Y1+Y2)/2
→b=((X2-X1)/(Y2-Y1))a-(X2^2-X1^2)/2)/(Y2-Y1)+(Y1+Y2)/2
これは
b= na+m
という形です。 プログラム上ではこの時点でのnとmを求めておくと
あとが簡単になります。 精度に関しては詳しいことは知りませんので、
調べてください。
このf(a)を二番目の式のbに代入すると、
(X1-a)^2+(Y1-na+m)^2 =R^2
これをといていくと
pa^2+qa+r = 0
のような、ただの二次方程式になります。
この時点でのp,q,rを求めておいて、
でそれを中学校で習う公式に入れて、解を求めるということになります。
これで、aが出てきますので、それを最初に出したf(a)に入れて、
bを求めるという順番になります。
    • good
    • 0

課題の丸投げは削除対象です。


以前この手の質問に答えたら、回答ごと削除されてしまいましたヨ。
    • good
    • 0
この回答へのお礼

二次方程式をプログラム内で計算したことがないので、
全くわからない状態です。
したがって、このような形で質問してしまいました。
今後、気をつけます。

お礼日時:2008/02/01 16:36

そのまま連立方程式を解くプログラムを作成する必要はないと思います。



まずは、第二式「 (X1-a)^2+(Y1-b)^2 =R^2 」 を a = xxxxxx の形に変形します。

その結果を、第一式「 (Y2-Y1)(b-(Y1+Y2)/2)=(X2-X1)(a-(X1+X2)/2) 」 に入れて、 b = ******* の形に変形したものを計算するプログラムを作成すれば良いと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
意味は非常によくわかります。
が、これをプログラムにするとなると全くわからない状態です。
まず、a=xxxxxの形にできません。
a=?とa=?と二つの解を持つと思うのですが、
どのようなプログラムで計算するのかが全くわかりません。
申し訳ないです。

お礼日時:2008/02/01 16:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!