Votre question n'est pas tout à fait claire, mais en supposant que vous voulez juste d'étendre this solution pour vérifier n points, je suppose que vous pouvez faire quelque chose comme ceci:
private static float sign(fPoint p1, fPoint p2, fPoint p3)
{
return (p1.x - p3.x) * (p2.y - p3.y) - (p2.x - p3.x) * (p1.y - p3.y);
}
public static boolean[] pointsInTriangle(fPoint[] pt, fPoint v1, fPoint v2, fPoint v3)
{
boolean b1, b2, b3;
boolean[] ret = new boolean[pt.length];
for (int i = 0; i < pt.length; i++)
{
b1 = sign(pt[i], v1, v2) < 0.0f;
b2 = sign(pt[i], v2, v3) < 0.0f;
b3 = sign(pt[i], v3, v1) < 0.0f;
ret[i] = ((b1 == b2) && (b2 == b3));
}
return ret;
}
Par ailleurs, c'est O (n).
Un triangle n'a pas plus de trois (3) points. Voulez-vous une fonction qui vérifie si un point est ** dans ** un _Polygon_ dans O (n^3)? – dacwe
@dacwe Je suppose qu'il veut dire vérifier si n points sont à l'intérieur d'un triangle, plutôt que de vérifier si un point est à l'intérieur d'un polygone à n côtés. – Grodriguez
Mais en regardant son lien les trois derniers paramètres sont les points du triangle .. – dacwe