タグ

2021年9月12日のブックマーク (1件)

  • Argorithms ( Is point in a polygon )

    点の内部判定(ポリゴン) アルゴリズム ある2次元上の点がポリゴンの内部にあるかどうかを判定するアルゴリズム。 判定したい点から出ている X軸に水平な半直線をとる。 その半直線とポリゴンの各線分との交点の個数を数える。 その交点の数が偶数なら外部の点、奇数なら内部の点である。 #define MAX 256 typedef struct { double x, y; } Point; typedef struct { int n; Point p[MAX]; } Polygon; int isCross(double y, Point p1, Point p2, Point *cp) { if(p1.y > p2.y) { Point p; p = p1; p1 = p2; p2 = p; } cp->x = (p1.x * (p2.y - y) + p2.x * (y - p1.y))

    millfi
    millfi 2021/09/12
    すごい賢いアルゴリズムだ