
VC++で
4つの頂点座標を持つ四角形
POINT pos[4]
を示すオブジェクトが重なりあっているかどうか
簡単に判定する事はできないでしょうか?
数が多いのでできるだけ負担の無い処理にしたいのですが。
それぞれの線分が交差するかどうかを
計算していく方法以外に簡単にすます方法はあるのでしょうか。
また四角形と円についても同様に判定したいです。
円については中心座標と半径と四角形の4つの線分の傾きから
円との接線を求め、その式から交わっているかどうか判定する。
と私の中学レベルの数学の知識ではこの発想なのですが
なにか良い方法が他にありましたら宜しくお願いします。
No.2ベストアンサー
- 回答日時:
大事なことを忘れてました。
本来、リージョンは図形を描画するのに使うものなので、図形が重なっているかどうかの判定は、あくまでもドット単位になります。
なので、計算上は重なっていても、重なっていないと判定される、もしくは逆もありえますので、もし使うのでしたらそれを意識して使ってください。
早速のご回答有難うございます。
POINT pos[4] と書きましたが実は独自定義でdouble型でもっています。
CreatePolygonRgn()調べましたが、大変参考になりました。
No.3
- 回答日時:
単純な事なので、すでにされている気もしますが。
重なりを精密にチェックする前に、大まかにチェックし
必要のある物だけを再チェックすると速度が向上する可能性があります。
具体的には、各図形を内包す長方形を定義し、その長方形同士で
重なりをチェックしたりします。
この回答への補足
>具体的には、各図形を内包す長方形を定義し、その長方形>同士で 重なりをチェックしたりします。
もうしわけあいません。勘違いしました。
四角形を内包する長方形ですね。
参考にしたいと思います。
ご回答有難うございます。
四角形でも長方形だけというわけではありません。ひし形や台形も含む四角形です。
計算速度を高めるため四角形に特化したものを作っていますが
汎用的に多角形にも対応したものも欲しいとおもっております。
No.1
- 回答日時:
リージョンを使うと、
CreatePolygonRgn()で、4つの点に囲まれたリージョンを作成し、CombineRgn()で合成されたリージョンがNULLリージョンじゃなかったら重なっていない。
なんてことができますが、
>数が多いのでできるだけ負担の無い処理にしたいのですが。
ということだと厳しいかも。
>また四角形と円についても同様に判定したいです。
これもリージョンで判定可能です。
円形のリージョンは、CreateEllipticRgn()で作成します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
C言語による楕円関数の記述
-
黒体放射軌跡のxy色度座標への...
-
ASP.NET フォーム上でp...
-
VBで車のアナログスピードメー...
-
エクセルで回転する座標の出し方
-
図形が重なりあっているかどうか
-
任意軸回転を、XYZ軸回転の...
-
MATLABの射影変換についての質...
-
マウスの移動範囲を限定するに...
-
3次元空間上の2つの座標から...
-
EXCEL VBA でウインドウの...
-
OpenCvSharp4による画像判定解...
-
SetWindowOrgとSetViewportOrg...
-
PictureBoxのImageを前面に
-
直線上にある点の座標の求め方
-
「アイテムは収集されました」...
-
エクセルで作った新しいウイン...
-
メッセージボックスを大きくす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
始点、終点の二つの座標と半径...
-
3次元空間上の2つの座標から...
-
エクセルで回転する座標の出し方
-
C言語 配列で座標
-
エクセルである点からの距離で...
-
シーケンサー(PLC?)で制...
-
多角形の内部かどうか判定する方法
-
Excel VBA で自在に図形を変化...
-
最小二乗平面
-
回転する矩形同士の当たり判定...
-
VBで、開いているExcelシートの...
-
ワード上Shapeの位置情報を統一...
-
図形が重なりあっているかどうか
-
C言語で制作するピラミッドアー...
-
ガウシアンフィルタのCプログラム
-
Excel関数で指定範囲内に有るか...
-
3次元座標上の2直線の交点判...
-
ダイアログ内コントロールの位...
おすすめ情報