[解決済み】ポリゴンの点のリストが時計回りに並んでいるかどうかを判断する方法は?
2022-03-30 22:10:15
質問
点のリストがあるとき、それらが時計回りに並んでいるかどうかを調べるにはどうしたらよいでしょうか。
例えば
point[0] = (5,0)
point[1] = (6,4)
point[2] = (4,5)
point[3] = (1,5)
point[4] = (1,0)
は、反時計回り(人によっては反時計回り)と言うことになります。
解き方は?
提案されている方法の中には、三日月のような非凸の多角形の場合、失敗するものがあります。ここでは、凸でない多角形で動作する簡単な方法を紹介する(8の字のような自己交差する多角形でも動作し、その多角形が ほとんど 時計回り)。
エッジの和、(x <サブ 2 - x <サブ 1 )(y <サブ 2 + y <サブ 1 ). 結果が正なら曲線は時計回り、負なら曲線は反時計回りになる。(結果は囲まれた領域の2倍で、+/-の規則がある)。
point[0] = (5,0) edge[0]: (6-5)(4+0) = 4
point[1] = (6,4) edge[1]: (4-6)(5+4) = -18
point[2] = (4,5) edge[2]: (1-4)(5+5) = -30
point[3] = (1,5) edge[3]: (1-1)(0+5) = 0
point[4] = (1,0) edge[4]: (5-1)(0+0) = 0
---
-44 counter-clockwise
関連
-
[解決済み】Mathematica の行列の対角化
-
[解決済み] LaTeX: 数学モードで3行をスタックする
-
[解決済み] Mathematica の行列対角化
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み】「エントロピーと情報利得」って何?
-
[解決済み】ポリゴンの膨張・収縮(オフセット、バッファリング)のためのアルゴリズム
-
[解決済み] 時計回りに並べると?
-
[解決済み] 緯度・経度をメートルに換算する方法は?
-
[解決済み】2次元の点がポリゴン内にあるかどうかを判断するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Mathematica の行列の対角化
-
[解決済み】n個のノードを持つ有向グラフの最大エッジ数は何個ですか?[クローズド]。
-
[解決済み] 回帰式 T(n) = 2T(n/2) + Θ(1) を代入して解きます。
-
[解決済み] 大きな符号なし2進数から小さな2進数の引き算
-
[解決済み] LaTeX: 数学モードで3行をスタックする
-
[解決済み] 矩形を回転させる最も簡単な方法
-
[解決済み] Mathematica の行列対角化
-
[解決済み] glm::normalizeは何をするのですか?
-
[解決済み] 2つの整数の最小公倍数を計算する最も効率的な方法は何でしょうか?
-
[解決済み】ポリゴンの点のリストが時計回りに並んでいるかどうかを判断する方法は?