• ベストアンサー

座標の交点の求めかた

ある座標が、ある線分上に交差または重なるか調べるにはどう計算すれば良いのか教えて下さい。

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

  • ベストアンサー
回答No.2

YUMIPAさん、こんにちは。 >ある座標が、ある線分上に交差または重なるか調べるにはどう計算すれば良いのか 座標というのは、点ですね。線分というのは直線なので、その点が、その直線上にあるかどうか、 ということでしょうか。 だとすると、直線の方程式をax+by+c=0・・・・(★) とします。 点の座標を(x1,y1)だとしますと、これを(★)に代入して ax1+by1+cを計算し、それが0になれば、直線上の点だということになります。 0にならなければ、直線上にない点です。 また、線分と線分が交差するか、重なるか、という問題でしたら、 線分の方程式を、それぞれ ax+by+c=0 px+qy+r=0 としますね。このとき、それぞれの傾きを調べると ax+by+c=0 b≠0のとき、y=-a/bx-c/b となるので、傾きは-a/b px+qy+r=0 q≠0のとき y=-p/qx-r/q となるので、傾きは-p/q ここで、-a/b=-p/qのとき、すなわちaq-bp=0のとき 二つの線分は平行または、等しい。 等しくなるのは、-c/b=-r/qつまりcq-br=0のときである。 aq-bp≠0のときは、二つの線分は交わります。(平行ではないので、どこかで交わる点があります) このようなことでしょうか。 ご参考になれば幸いです。

YUMIPA
質問者

お礼

御礼が遅れてしまって申し訳ありません! とても参考になり、無事に問題解決する事ができました。 本当に有難う御座いました。

その他の回答 (1)

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.1

ある座標がある線分上に含まれているかどうかは、その線分の方程式に座標値を代入して式が成り立つかどうかを見ることで判断できると思います。 質問とは直接関係ありませんが座標は点なので線分に対して「交差」することはないと思います。 ex.  座標(10,20)  線分(y = 2*x [5 < x 30]) なら  20 = 2*10  [5 < 10 < 30] が成り立つ=含まれる 座標(10,15)なら  15 ≠ 2*10  [5 < 10 < 30] 成り立たない=含まれない

YUMIPA
質問者

お礼

御礼が遅れてしまって申し訳ありません! 無事に問題解決する事ができました。 この質問に対して一番早くレスポンス頂けた事をとても嬉しく思っています。 今回は本当に有難う御座いました。

関連するQ&A

  • 交点の座標

    宜しくお願いします。 2本の線分の交わる交点の座標の計算のしかたを、教えて下さい。2本とも角度と点の座標は分かっていると仮定します。 宜しくお願いします。

  • 交差する2線分の交点座標の求め方

    2つの線分が交差する場に交点の座標を求めようと思っています。 アドバイスを頂けないでしょうか? 入力値:(aX1, aY1)(aX2, aY2)     (bX1, bY1)(bX2, bY2) 出力値:(X, Y) よろしくお願いします。

  • 3次元座標上の2直線の交点判定について

    座標A(x1,y1,z1)から座標B(x2,y2,z2)への線分ABと 座標C(x3,y3,z3)から座標B(x4,y4,z4)への線分CDがあり、 線分ABと線分CDが交点を持つかどうかのプログラムを作りたいです。 C言語かVBかFortranで記述され、DirectXやOpenGLのライブラリを使わない方法の サンプルソースの載っているページを教えていただけませんか? また、ご迷惑でなければソースコードを記述していただけると助かります。

  • 2つの座標と角度から交点座標の求め方

    (X1, Y1)と(X2, Y2)の2点の座標と角度θがあります。 この情報から交点座標(XX, YY)を求めたいと思っています。 どのような計算式になるのでしょうか? VB6にて作成しております。 よろしくお願いします。

  • 原点が複数存在する座標系は可能ですか?

    普通のxy軸を持った座標は二本の直線が交差しているかたちで原点がひとつだけありますが、いま円を描いて、この円に内接する形で星型を描くと二本の線分(?)が交差する点が10個できますが、これは全て同じような原点の資格を持っているように思われます。このような複数の原点を持った座標を使っていろいろな関数のグラフを描くと全く違うものになりそうにも思うのですが、どうなのでしょう。

  • 線分の交点の保持

    いつもお世話になってます。 2つ以上の線分が2次元上にあって、線分が交差した場合それぞれの交点を保ちながらも移動し、交点で回転しながら他の線分とも衝突判定を行う、というアルゴリズムを考えているのですがなかなかうまくいかず悩んでいます。 最終的にはたくさんの線分がくっついて、くねくねしながら移動するようなイメージです。 速度を同じにして、交点を軸に回転させてみたのですが、3本目の線分が交差したときうまくいかなくなってしまいました・・。 ぜひ皆さんの力を貸してください。よろしくお願いします。

  • 座標変換について

    アフィン変換などの座標変換で、「線分を座標変換するときに線分上のすべての点ではなく、両端点のみを変換すれば正しい」という数学的な証明がわかりません。 どうかどうか教えていただけないでしょうか??

  • ベクトルの交点座標

    3次元空間において、二つのベクトルの交点座標を求める方法を教えていただけませんか。 座標系は3次元直交座標で結構です。よろしくお願いいたします。

  • 交点の座標の計算

    2点PQとそこからの距離l,mが与えられた時、RP=l,RQ=mを満たす点の座標を求めたいのです。 図では簡単に、点Pを中心に半径lの円、点Qを中心に半径mの円を書けば、交点が求める点Rになる訳ですが、これを計算で行いたいのです。 が、式がややこしくて頭が混乱してしまったので、助けてください。 簡単な計算方法があれば教えてください。 プログラムCで、(Px,Py, Qx,Qy, l,m)をパラメタとした関数を書きたいのです。 よろしくお願いします。

  • 座標を結んだ線分の交差

    配列 x, y に(実数)値が与えられており、 (x[1], y[1]) を座標平面上の点 P1 、(x[2], y[2]) を点 P2 、… と考えたとき、 P1とP2を結んだ線分と、P3とP4を結んだ線分が交差しているかを判断する プログラム(アルゴリズム)はどのように考えることができるでしょうか? 結ぶ2点を通る直線の傾きなどを求めても、どのように利用すればよいか思いつきませんでした。 C言語というより数学の話かもしれませんが、ご教示いただければ幸いです。 なかなか方法を思いつかず、私の考察を提示できずに恐縮ですが宜しくお願いいたします。