カーソルが平行四辺形上にあるかどうかの判定

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
gage

カーソルが平行四辺形上にあるかどうかの判定

#1

投稿記事 by gage » 11年前

DXライブラリ
VC++2010

平行四辺形を描写する場合はグラフ4つ使うか、三角形2つ使うなどありますが、
描写した平行四辺形の範囲(平行四辺形の内部)を式で表す方法がわかりません。
よろしくお願いします。

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: カーソルが平行四辺形上にあるかどうかの判定

#2

投稿記事 by usao » 11年前

長方形だったらできるのでしょうか?
→できるとしたら どうやって判定するのでしょう?
→並行四辺形でも同じことをすれば判定できませんか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: カーソルが平行四辺形上にあるかどうかの判定

#3

投稿記事 by みけCAT » 11年前

heikousihenkei.png
平行四辺形の図
heikousihenkei.png (1.46 KiB) 閲覧数: 2424 回
図の平行四辺形ABDCにおいて、
点Pが平行四辺形ABDCの内部にある⇔APベクトル=s×ABベクトル+t×ACベクトル (s,tは実数)と表すとき、0<s<1 ∧ 0<t<1
点Pが平行四辺形ABDCの周または内部にある⇔APベクトル=s×ABベクトル+t×ACベクトル (s,tは実数)と表すとき、0≦s≦1 ∧ 0≦t≦1
だと思います。
s,tは二元連立方程式を解けば求まります。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: カーソルが平行四辺形上にあるかどうかの判定

#4

投稿記事 by usao » 11年前

ぬぅ,何かしら方法論が書かれてしまったか…
じゃあ答えてしまうと

長方形なら,
・上辺よりも下側にあって
・下辺よりも上側にあって
・左辺よりも右側にあって
・右辺よりも左側にある
という判定を行うことで目的を達成できますよね.

平行四辺形でも同じです.
ちょうど みけCATさんが図を貼ってくれているので,その図内の記号で言えば,
・辺ABよりも右側(…というのは正確な文言ではないが多分通じるだろう)で…
というのを4辺についてやればいいわけですね.

2つの三角形として判定するとかでもいいでしょう.
(3角形の内外判定方法とかは検索すればすぐに見つかると思います)


閉鎖

“C言語何でも質問掲示板” へ戻る