Non, ça va être plus compliqué malheureusement, tes polygones peuvent être concaves ou non ?
si non : utilise la méthode qu'on t'a donné,
si oui : il va falloir que tu implémentes un test de collision sur ton polygone (
après avoir préalablement testé que le point test n'est pas noir, couleur de ton arête).
vite fait l'algo c# ressemble à ceci (vérifie, ça fait longtemps que j'ai arrêté les maths) tu trouveras des algos un peu partout sur le net (developper.com un site sérieux), il ne te reste qu'à le transformer en PHP
polyX = tableau des x des coins
polyY = des y
x = x du point à tester
y = y du point à tester
Code:
public boolean pointInPolygon(float polyX[],float polyY[],float x, float y)
{
int nbCotes = polyX.length;
int j = nbCotes-1;
bool bNodes=false;
for (int i=0; i<nbCotes; i++)
{
if (polyY[i]<y && polyY[j]>=y || polyY[j]<y && polyY[i]>=y)
{
if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x)
{
bNodes=!bNodes;
}
}
j=i;
}
return bNodes;
}
Ensuite la meilleure méthode est surement de faire comme t'as dis en prenant un point au pif autour de l'un des points et vérifier ainsi qu'il est dans ton polygone. Personnellement j'aurais tendance à tracer un segment médian et à boucler dessus jusqu'à ce que je trouve un point dedans... les développeurs de jeux pourraient t'en dire plus que moi qui n'ait pas touché à ce genre d'algo depuis la fac

Quoi qu'il en soit, PHP pour faire ça n'est pas très adapté. Le mieux serait quand même que tes polygones soient convexes.