I am reading the godot code,but This function confused me.
static bool is_point_in_polygon(const Vector2 &p_point, const Vector<Vector2> &p_polygon) {
int c = p_polygon.size();
if (c < 3) {
return false;
}
const Vector2 *p = p_polygon.ptr();
Vector2 further_away(-1e20, -1e20);
Vector2 further_away_opposite(1e20, 1e20);
for (int i = 0; i < c; i++) {
further_away.x = MAX(p[i].x, further_away.x);
further_away.y = MAX(p[i].y, further_away.y);
further_away_opposite.x = MIN(p[i].x, further_away_opposite.x);
further_away_opposite.y = MIN(p[i].y, further_away_opposite.y);
}
// Make point outside that won't intersect with points in segment from p_point.
further_away += (further_away - further_away_opposite) * * Vector2(1.221313, 1.512312);
int intersections = 0;
for (int i = 0; i < c; i++) {
const Vector2 &v1 = p[i];
const Vector2 &v2 = p[(i + 1) % c];
if (segment_intersects_segment(v1, v2, p_point, further_away, nullptr)) {
intersections++;
}
}
return (intersections & 1);
}
It is in godot/core/math/geometry_2d,I probably know what the function means, my only question is why use Vector2(1.221313, 1.512312).
i need your help please,thanks a lot.
BR.