私は上記の問題を解決していましたが、数学の方程式と変数とあまりにも混同しました。私は他の二つの点の座標を見つけることを試みることによって始めたが、方程式は私では解決できなかった、そこに多くの変数をウェアと私は混乱しました。それが完了した場合、私は側面に対して点の位置を確認しようとしているだろうが、それはまた、変数と多くの混乱が含まれるであろう。良いアルゴリズムが役立つかもしれません。 ありがとう!対角の端点が与えられた正方形内に点があるかどうかをチェックするCプログラムを作成するには
答えて
あなたは、正方形の残りの2つの点を見つけることができます:正方形の4つの点を有する後
x1 = ? ; y1 = ? ; // First diagonal point
x2 = ? ; y2 = ? ; // Second diagonal point
xc = (x1 + x2)/2 ; yc = (y1 + y2)/2 ; // Center point
xd = (x1 - x2)/2 ; yd = (y1 - y2)/2 ; // Half-diagonal
x3 = xc - yd ; y3 = yc + xd; // Third corner
x4 = xc + yd ; y4 = yc - xd; // Fourth corner
を与えられた点は、その後、画像以下のように4つの三角形の面積が等しくなり、正方形の内側にある場合、あなたは確認することができます正方形の面積。
読む:
https://martin-thoma.com/how-to-check-if-a-point-is-inside-a-rectangle/
興味深い - 「他の2点」のコードは私が予想していたよりも簡単です。私が最後に3つのコーナーの座標を与えられた三角形の面積を計算する必要があったのでしばらくあります。確かに、それは計算可能です(それに驚くほど簡単な式もあります)。 –
レッツ・頂点がAとBで、点がP(ピクチャーに偶然という名前のC)です。内積が負であればAB、AP、BP
AB.X = B.X - A.X
AB.Y = B.Y - A.Y
and so on
Pが正方形内にあるベクトル
cA = AP x AB //(AP.X * AB.Y - AP.Y * AB.X)
dA = AP dot AB //(AP.X * AB.X + AP.Y * AB.Y)
cB = -(AB x BP)
dB = -(AB dot BP)
と外積の絶対値が内積
次いで少ないの検索dA >= Abs(cA)
dB >= Abs(cB)
(これは、アングルが範囲-Pi/4..Pi/4
)
あなたの問題は()あなたがより多くの情報が必要になり3DまたはN-Dのように2Dであると仮定しましょう。我々はできるv2
を得ることが
M = (A+B)/2
v1 = B-M
:
2つの行方不明頂点
を見つけるだから我々は
A,B
を知っているとC,D
をしたい:私はこのようにそれを解決するだろう事実を利用して2D残りは容易であるv2 = (v1y,-v2x)
:
C = M - v2 D = M + v2
計算2つのエッジ基底ベクトル
U = C-A V = D-A
ベクター使用ドット積は、他の方法の周りに(両方のベクトルが単位である場合)
J
にあなたI
の垂直投影を与える、または点P
が角内にあるかどうかを検出する:W = P-A tu = (U.W)/(|U|*|W|) tv = (V.W)/(|V|*|W|) if ((tu>=0.0)&&(tu<=1.0)&&(tv>=0.0)&&(tv<=1.0)) return inside; else return outside;
(x,y)
と(y,-x)
は垂直であるので、同じサイズ我々はそれを利用できるように範囲
dot(I,J) = (I.J) = (Ix*Jx) + (Iy*Jy)
内部チェックする
はちょうどベクトルの完全なABS値は次のように計算されなければ:
abs(I) = |I| = sqrt (Ix*Ix + Iy*Iy)
- 1. 与えられた点が四角形の内側にあるかどうかを調べるには
- 2. 与えられた点が正方形であるかどうかをチェックする
- 3. 与えられた2点から3Dモデルを作成するにはどうすればいいですか?
- 4. ポイントが点群内にあるかどうかをチェックする方法
- 5. 点集合三角形分割が三角形分割であるかどうかをチェック
- 6. 3D点が円柱の中にあるかどうかをチェックする方法
- 7. 与えられた2つの点から線を作成する
- 8. locateに与えられた点が三角形の頂点の1つであるとき、OpenCVのSubdiv2D/Delaunayは壊れていますか?
- 9. 交差点の重心パラメータを与えられた点に最も近い3D三角形の頂点
- 10. Pythonの与えられた点から近点を見つける方法
- 11. エッジのセットとその複雑さが与えられたときに、無作為サイクルが形成されるかどうかをチェックする方法は?
- 12. ある与えられた点からの距離に沿った線の中間点を見つける
- 13. 与えられたプログラムが与えられたアルゴリズムを実装しているかどうかをチェックするベリファイアを書くことはできますか?
- 14. 与えられた数字がフィボナッチ数であるかどうかをチェックする方法は?
- 15. 2つの反対側の点を与えられた2d行列の正方形を描く方法
- 16. オブジェクトがhaxeの与えられたクラスの子孫であるかどうかチェックする方法は?
- 17. このpygameプログラムで各四角形のマウスクリックが長方形内にあるかどうかを確認するにはどうすればよいですか?
- 18. 2つの同心円の間に特定の点があるかどうかを見つける方法は?各円に3点を与えます
- 19. 頂点が与えられた四辺形の周囲に沿って座標を高速に生成する方法はありますか?
- 20. 多角形の穴の中に多角形の穴がある点を指す
- 21. 3点を結んで作られた三角形をどのように埋めるのですか
- 22. 線と三角形の交差点チェックが間違った交点を返す
- 23. 与えられた正規表現が何かにマッチするかどうかをチェック
- 24. 三角形に特定の点が含まれているかどうかを調べる方法は?
- 25. 与えられた文字列がJavaの別の文字列から形成されるかどうかをチェックする方法は?
- 26. Python/Psychopy:点が円内にあるかどうかの確認
- 27. 点集合から四角形の頂点を見つける
- 28. Objective-Cのランダムポイント私の要件が与えられたエリア内のランダム点を生成している
- 29. 3点の座標が与えられた場合、定義された三角形が等辺、二等辺三角形またはスカラーであるかどうかを判断する方法は?
- 30. ランダムな点群から三角形を生成する
は、[ヘルプページ]を読むためにいくつかの時間がかかるしてください(http://stackoverflow.com/help)、特にセクションでは、名前の[ 「ここで私はどのような話題を聞くことができますか?」(http://stackoverflow.com/help/on-topic)と「質問するのは避けるべき種類は何ですか?」(http://stackoverflow.com/help)/dont-ask)。また、[ツアーを受けてください](http://stackoverflow.com/tour)と[良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)もご覧ください。最後に、[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)の作成方法を学んでください。 –
あなたは本当にここでたくさんの数学を必要としません。四角形を描画し、四角形の内外に移動するときに、点のX座標とY座標がどうなるかを観察します。点のX座標とY座標を対角線上の2点のX座標とY座標と比較します。 –
最低でもサンプルデータを表示する必要があります。ポイントが(0,0)と(3,3)の場合、または(2,5)と(4,7)の場合は、正方形の辺が軸に平行であるため、すべて正直です。ポイントが(0,0)と(3,6)の場合は、正方形が斜めになっているので、答えを計算するためにもっと数学が必要です。計算の仕方を知るために十分な数学を学んだことを示す必要があります。そうでなければ、コードの助けに来る前に問題のその部分を修正する必要があります。あなたが関係する数学を知っている場合は、ソリューションのコーディングを開始することができます。 –