• ベストアンサー

連立二次方程式についてですが。

教えて下さい。 円弧の始点、終点、半径が与えられています。 これを、公式にあてはめて中心点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を使用しています。

質問者が選んだベストアンサー

  • ベストアンサー
noname#60992
noname#60992
回答No.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を求めるという順番になります。

その他の回答 (2)

  • NYOI
  • ベストアンサー率58% (56/96)
回答No.2

課題の丸投げは削除対象です。 以前この手の質問に答えたら、回答ごと削除されてしまいましたヨ。

satoshi777
質問者

お礼

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

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

そのまま連立方程式を解くプログラムを作成する必要はないと思います。 まずは、第二式「 (X1-a)^2+(Y1-b)^2 =R^2 」 を a = xxxxxx の形に変形します。 その結果を、第一式「 (Y2-Y1)(b-(Y1+Y2)/2)=(X2-X1)(a-(X1+X2)/2) 」 に入れて、 b = ******* の形に変形したものを計算するプログラムを作成すれば良いと思います。

satoshi777
質問者

お礼

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

関連するQ&A

  • 二次関数の連立方程式

    2点の座標(a1,b1)、(a2,b2)と半径のrが数値として(x,y)を求めるため x^2-2a1x+y^2-2b1y=r^2-a1^2-b1^2 x^2-2a2x+y^2-2b2y=r^2-a2^2-b2^2 の連立方程式がうまく解けません。二乗を含んだ連立方程式の解き方を教えてもらえないでしょうか? この方程式を求めた経緯としまして参考程度に下記に記します。 ある2点の座標(a1,b1)、(a2,b2)がわかっている状態で2点から同距離離れている点を求めたいとします。簡単にいいますと、とある円上を通っている2点から半径rが分かれば円の中心点が導き出せるといい変えれると思います。 ここで中心点は2つ求められると思うんですがこの上の方程式で求められますよね?

  • 円弧の描画について

    エクセルのワークシート上に2点(x1,y1)、(x2,y2)の座標があり、半径がrと決まっている場合に、(x1,y1)を始点、(x2,y2)を終点とする半径rの円弧を描きたいのですが、VBAで教えていただけますでしょうか? 例えばエクセルのワークシート上に2点(600,400)と(500,300)という座標があります。この座標は、 Dim ShapeA As Shape, ShapeB As Shape Set ShapeA = ActiveSheet.Shapes.AddShape _ (msoShapeOval, 600, 400, 2, 2) Set ShapeB = ActiveSheet.Shapes.AddShape _ (msoShapeOval, 500, 300, 2, 2) というコードでワークシート上に描いています。 この2点をそれぞれ始点、終点として、半径100の円弧を描く方法を考えているのですが、 VBA初心者の為、困っています。VBAで円弧を描く方法がありましたら是非教えていただきたく お願い致します。 よろしくお願い致します。

  • 2元2次連立方程式の解き方

    とある2元2次方程式を解くプログラムを作成したいと 思っています。 楕円の長径 (a) 楕円の短径 (b) 楕円の軌道上の座標1 (x1, y1) 楕円の軌道上の座標2 (x2, y2) 楕円の長径の軸の角度は 0° という情報が分かっている場合に (x1 - cx)^2 / a^2 + (y1 - cy)^2 / b^2 = 1 (x2 - cx)^2 / a^2 + (y2 - cy)^2 / b^2 = 1 という楕円の方程式を使い、 楕円の中心点(cx,cy)を求めたいのですが、 数学に疎く、中々解くことができません。 例えば 片方の "cx = ~" という式は解の公式を使用して 何とか形にはなるのですが、それをもう一方の連立式に代入 して、もう片方の "cy = ~" を求める式を作れません。 どういったものとなるのでしょうか。 どなたか、ご教授の程よろしくお願いいたします。

  • 円弧の半径

    円弧の始点A、終点B、線分ABの垂線と交わる円弧上の点C、線分ABの中心点D、中心点O としたとき、線分AB、CDが求まれば円弧の半径Rが求まると思うんですがどういった式になるのでしょうか R = AB*AB / (8*CD) + CD/2 上の式でいけると聞いたことがあるのですが なんの公式を使えばこうなるのかわかりません できればなにを基に式の変形すればよいか宜敷御願いします。

  • 円(x-a)^2+(y-b)^2=r^2の接線

    御世話になっております。 数学IIより、 中心座標が原点でない円(x-a)^2+(y-b)^2=r^2 の周上にある点(x1,y1)に於ける接線の方程式の公式の導き方につまずいてます。基本は、中心座標が原点の円に関する接線の方程式の公式と同じだろうと思っていたら、最後の式変形がうまく出来ないのです。 一応やってみたので、間違ってる点があったらご指摘下さると助かります。 (1)中心座標が(a,b)、半径=rの円の方程式は(x-a)^2+(y-b)^2=r^2。この円の周上にある点Pの座標を(x1,y1)とする。また、この点Pの座標はx≠0、y≠0。 (2)円の中心から点Pを結ぶ線分(直線)OPの傾きは、y1-b/x1-a。一方点Pを通る接線Lの傾き(m)は、OP⊥Lであるから、(y1-b/x1-a)・m=-1 。 よってm=-(x1-a/y1-b)。 Lの方程式は分母を払った形で示すと y1・y+x1・x-by-ax+b・y1-ax+a・x1=x1^2+y1^2 ……I 次。点Pは円の周上にあるから、 (x1-a)^2+(y1-b)^2=r^2 ……II で、このあと。恐らくですが、I式をA=B。II式をB=Cで置き換えると、A=Cで、中心座標が原点の場合の接線の公式が成り立っているのだと思いますが。恐らく…… B=Cの方は簡単ですが、I式からA=Bの形にすることがうまく出来ないのです。平方完成?因数分解? そもそも私の考え方が全くの見当違いなのでしょうか…

  • 円の中心座標の求め方を教えてください

    とあるプログラムを作ろうとしています。 円弧を描くプログラムなのですが、中高で数学を真面目に勉強していなかったツケがまわってきたようで、あっけなく行き詰ってしまいました。 円周の二点の座標(x1,y1)(x2,y2)と、円の半径がわかっているのですが、それらから円の中心座標を求めたいと思っています。 公式などあったら、詳しい方、お願いします。

  • 円弧、テーパの切削

    NC旋盤での円弧切削でのプログラム 凸円弧の切削でプログラムを作成する時、刃先のノーズRをrとして指示半径 をRとすると、プログラム時の半径は: R+r        円弧の中心     : ノーズR分だけ移動(左下)               始点(円弧右下設定): ノーズR分だけ下方向移動(X軸)           終点(円弧右下設定): ノーズR分だけ左方向移動(Z軸) 凹円弧の切削の場合        プログラム時の半径は: R-r        円弧の中心     : ノーズR分だけ移動(右上)                 始点(円弧右下設定): ノーズR分だけ下方向移動(X軸)        終点(円弧右下設定): ノーズR分だけ右方向移動(Z軸)           でよろしいでしょうか。 また、円弧から円弧に切削する時、テーパーからテーパー、テーパから円弧、円弧からテーパには、どのような計算式を行ったらよろしいでしょうか。 ご回答よろしくお願いします。

  • 円の接線の方程式

    円C:(x-a)^2+(y-b)^2=r^2上の点(x1,y1)における接線の方程式は、 (x1-a)(x-a)+(y1-b)(y-b)=r^2とありますが、 何故、aもbも全部マイナスなんでしょうか? Cの中心(a,b)が原点(0,0)にくるように平行移動し、 その円の接線の方程式を求め、 その接線を、元の位置に平行移動し戻す、という手順だと思うんですが、 そうすると、中心と接線が移動する方向は反対ですよね? なのに何故、a,bの符号が両方ともマイナスなのか、というのがわかりません。 わかる方解説お願いします。

  • 式の展開?について教えてください。

    式の展開?について教えてください。 (X-ax)^2+(Y-ay)^2=r^2 (X-bx)^2+(Y-by)^2=r^2 の式を使って X=~ Y=~ ax=~ ay=~ と式を展開?変換?したいのです。 円弧の中心座標と円弧の始点座標を取得したいのですが、 数学の知識がなく、展開・変換?ができなくて困っています。 どなたか教えていただけないでしょうか。 X,Y=円弧の中心点 ax,ay=円弧の始点 bx,by=円弧の終点 可能であれば、展開の方法をわかりやすく説明して頂きたいです。 又、数学のどこを勉強すればいいか、参考になる書籍があれば教えてください。 よろしくお願い致します。

  • 連立方程式の解き方

    x^2+y^2=5(a^2+b^2) …(1) ax+by=2(a^2+b^2)  …(2) の連立方程式があり、x,yについて解けと言う問題です。(x^2はxの2乗の意) (2)をyイコールの形にしてから(1)に代入し、解の公式を使ってみたのですが、滅茶苦茶になってしまい、いまいち解りません。 ちなみに、答は (x,y)=(2a-b,a+2b),(2a+b,-a+2b) なのですが、過程がわからず困惑しております。 どなたか解る方、宜しくお願いします。

専門家に質問してみよう