这是本文档旧的修订版!
``` 检查点是否在多边形内(射线法) bool containsPoint(const Point2D& point) const { if (size() < 3) return false; int intersections = 0; int n = size(); for (int i = 0; i < n; ++i) { int j = (i + 1) % n; Point2D p1 = at(i); Point2D p2 = at(j); if 1) && (point.x < (p2.x - p1.x) * (point.y - p1.y) / (p2.y - p1.y) + p1.x)) { intersections++; } } return (intersections % 2) == 1; } ```
1)
(p1.y > point.y) != (p2.y > point.y