タグ

algorithmとcollisionに関するmieki256のブックマーク (4)

  • 多角形の内外判定(javascriptでの実装を添えて) - 加具留矢流余

    アノテーションツールでセグメンテーション用に多角形での範囲選択を実装しようとしている。 四角形の場合には簡単に内外判定ができるが、多角形だとそう簡単にはいかない。 今回実装にあたって多角形の内外判定を勉強した。 完成した多角形の描画&内外判定機能 TL;DR Winding Number Algorithmは割と楽に実装できる 実装するときは角度の符号の計算を忘れない はじめに参考資料 理論だったり詳しい実装のポイントは以下の資料を見てください。 この資料を見て理解できればこの記事は読まなくて大丈夫です。 www.nttpc.co.jp Winding Number Algorighmとは 多角形の角2つと対象となる点が成す角度を順番に計算していき、それらの和が360°以上であれば(一周以上するのであれば)点は多角形内部にある。 一方で和が0であれば、点は多角形外部にある。 最初角度の和が

    多角形の内外判定(javascriptでの実装を添えて) - 加具留矢流余
  • ある点と多角形の内外判定 - Qiita

    judgeInclusion = function(p1, comparisonArr) { var deg = 0; var p1x = p1.x; var p1y = p1.y; for (var index = 0; index < comparisonArr.length; index++) { var p2x = comparisonArr[index].x; var p2y = comparisonArr[index].y; if (index < comparisonArr.length - 1) { var p3x = comparisonArr[index + 1].x; var p3y = comparisonArr[index + 1].y; } else { var p3x = comparisonArr[0].x; var p3y = comparisonArr[

    ある点と多角形の内外判定 - Qiita
  • 【第2回】点の多角形に対する内外判定|【技業LOG】技術者が紹介するNTTPCのテクノロジー|【公式】NTTPC

    前回(と言っても一年近く経過していますね・・・。遅くなりました。)に引き続き、地図上に存在するエリアと現在地との関係性を計算機上で把握する手法の第2回目です。今回は、第3工程にあたる、「内外判定」について解説します。 現在地があるエリアの内側にいるか外側にいるかを考える場合、2次元平面上に存在する任意の点Pと多角形Tについて、点Pが多角形Tの内側にいるか外側にいるかを判定するにはどうしたらよいかを考えます。 この時、主に次の2つのアルゴリズムが利用されていることがわかりました。 Crossing Number Algorithm Winding Number Algorithm そこで、今回はこれらのアルゴリズムと実装方法(コード)について説明します。 まずはそれぞれのアルゴリズムの概要を簡単に説明します。 1.1.Crossing Number Algorithm(交差数判定)の概要 こ

    【第2回】点の多角形に対する内外判定|【技業LOG】技術者が紹介するNTTPCのテクノロジー|【公式】NTTPC
  • 点と凹多角形の内外判定を行う - e.blog

    概要 判定の考え方 Crossing Number Algorithm Winding Number Algorithm 角度を利用したアルゴリズムの実装解説 角度を使ったアルゴリズムのソースコード 平面法線を使って回転の方向を判定 浮動小数点誤差などを考慮 辺との交差を利用したアルゴリズムの実装解説 辺との交差を用いたアルゴリズムのソースコード 概要 凹多角形の内外判定を行いたく、以下の記事を参考にUnityで判定処理を書いたのでそのメモです。 www.nttpc.co.jp 実際に実装した動画です。ちゃんと内外判定が出来ているのが分かるかと思います。 凹多角形の内外判定、意外とシンプルにできるんだなー。外側のときは偏角の合計が0になるっていうのも興味深い。 pic.twitter.com/phBZIrKf3T— edom18@AR / MESON (@edo_m18) 2018年11月

    点と凹多角形の内外判定を行う - e.blog
  • 1