
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で質問しましょう!
似たような質問が見つかりました
- 高校 数学Aの問題で、円に内接するN角形(N>4)の対角線の総数は ア 本である。また、Fの頂点三つからで 1 2023/04/13 17:47
- 中学校 OA=OB=OC=AB=AC=1、 ∠BOC=90°となる四面体OABCの 辺OA上に点DをOD:D 4 2022/10/11 10:07
- 数学 AB=2,BC=3,∠ABC=60°の三角形がある。 点Aから辺BCに垂線を下ろし辺BCとの交点をD 4 2023/02/02 15:55
- 物理学 図のように、内半径aの中空の円筒が、その中心軸が水平になるように固定されており、その中で、 質量 M 7 2023/02/15 09:23
- C言語・C++・C# ある線が円の範囲に入っているかの計算 1 2022/12/07 16:14
- 数学 中3 円周角の定理の問題です 3 2022/06/29 22:21
- 中学校 中1数学 比例のグラフの座標の読み取り 4 2023/03/28 12:26
- DIY・エクステリア 円の中心の求め方 6 2022/07/17 19:18
- 数学 数学B 正四面体の第4の頂点 3 2022/06/06 08:40
- 数学 正五角形の対角線と求角 添付の画像、36°と求められるのですけど、 私は正五角形の内角の1つを108 5 2022/10/20 15:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
y=x^2の座標をプロットするプロ...
-
黒体放射軌跡のxy色度座標への...
-
ワード上Shapeの位置情報を統一...
-
3次元空間上の2つの座標から...
-
以下のプログラムは重心を求め...
-
エクセルで回転する座標の出し方
-
VBで円を書いたとき、同じに...
-
緩やかなカーブを表現する
-
2D座標を3D座標に変換する...
-
ダイアログ内コントロールの位...
-
GLで座標を変えて回転させたい
-
2つの座標と角度から交点座標の...
-
変数名のこだわりについて
-
シーケンサー(PLC?)で制...
-
c言語でキーボードから2点の座...
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
コントロールの書式設定で、“コ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
3次元空間上の2つの座標から...
-
エクセルで回転する座標の出し方
-
ダイアログ内コントロールの位...
-
多角形の内部かどうか判定する方法
-
交差する2線分の交点座標の求め方
-
ワード上Shapeの位置情報を統一...
-
C言語 配列で座標
-
閉図形の座標の配列が右回りか...
-
シーケンサー(PLC?)で制...
-
Excel VBA で自在に図形を変化...
-
直線上にある点の座標の求め方
-
エクセルである点からの距離で...
-
OpenCvSharp4による画像判定解...
-
始点、終点の二つの座標と半径...
-
GLで座標を変えて回転させたい
-
ピクチャボックスの座標取得
-
最小二乗平面
-
c言語でキーボードから2点の座...
おすすめ情報