| 

.NET C# Java Javascript Exception

Antwort #A19753 zur Frage #F13214: Liegt Punkt in Polygon? C#

Diese Antwort hat bisher 2 Versionen. Frage #F13214: Liegt Punkt in Polygon? C# - Antwort #A19753


Version 2
01.10.2011 20:54:20
Dies ist die aktuelle Version
Das ist nicht schwer. Die Lösung läuft darauf hinaus festzustellen, wie oft die Kante des Polys geschnitten wird bis der Punkt erreicht ist.

public static bool pnpoly(int nvert, double[] vertx, double[] verty, double testx, double testy)
{
int i, j;
bool c = false;
for (i = 0, j = nvert - 1; i < nvert; j = i++)
{
if (((verty[i] > testy) != (verty[j] > testy)) &&
(testx < (vertx[j] - vertx[i]) * (testy - verty[i]) / (verty[j] - verty[i]) + vertx[i]))
c = !c;
}
return c;
}
Matthias Hlawatsch 13,1k 3 9
Version 1
30.09.2011 14:50:19
Das ist nicht schwer. Die Lösung läuft darauf hinaus festzustellen, wie oft die Kante des Polys geschnitten wird bis der Punkt erreicht ist.

public static bool pnpoly(int nvert, double[] vertx, double[] verty, double testx, double testy)
{
int i, j;
bool c = false;
for (i = 0, j = nvert - 1; i < nvert; j = i++)
{
if (((verty > testy) != (verty[j] > testy)) &&
(testx < (vertx[j] - vertx) * (testy - verty) / (verty[j] - verty) + vertx))
c = !c;
}
return c;
}
[/code]
puls200 3,8k 6