infoMenuBicyclesEssaysSoftwares多角形の内外判定ある点が多角形の内側にあるのか外側にあるのかを判定するには主にある点から直線をひいて多角形の辺と何回交差するか判定する(偶数回なら外、奇数回なら中)ある点から多角形の各頂点を順番に見ていったときに何回転するかの2つの方法がある。ここでは2番目の方法で実装する。点から多角形上の点を順々に見たときの偏角(反時計まわりを正とする)の和を取ればよいので、ある点Pからみた多角形上の頂点Aから頂点Bまでの偏角∠APBを求める関数をまず作成する。この実装方法にもベクトルの外積を考えるなど何通りか考えられるが、せっかくMathematicaを使うので楽をして、複素数にしてArgで偏角をとることにする。偏角の和が±2π、±6π、±10π...のとき点は多角形の中とできる。以上より多角形の内外を判定する関数InsidePolygonQは以下のように実装できる。]丸め誤差が蓄積すると誤判定してしまうのだが、誤判定するために要求される丸め誤差はπなので、多分大丈夫だと思われる。高速化するためには、以下の書き方がMathematicaらしく簡潔で、なおかつ動作も速い。Mathematicaであるためか分かりにくそうなので、上記関数の使用例を追加。0.8}]False多角形と点の位置関係は下図。(1,0.3)は多角形内部、(1,0.8)は多角形外部である。