@igel457: Das ist ja nur eine Funktion, um zu testen, ob ein Punkt in einem Polygon liegt. Ich suche aber eine Funktion, welche prüft ob ein Polygon in einem anderen Polygon ist...
Habe meine Funktion mal angepasst, sie funktioniert aber nicht.
Hier mal die Funktion, welche ich zum testen benutzt habe:
Delphi-Quellcode:
procedure TestPolygonInPolygon;
var
RgnA, RgnB, RgnC: hdc;
TestA, TestB:
Array of TPoint;
begin
SetLength(TestA, 3);
TestA[0] := point(1,1);
TestA[1] := point(5,1);
TestA[2] := point(2,6);
SetLength(TestB, 3);
TestB[0] := point(3,1);
TestB[1] := point(1,4);
TestB[2] := point(4,4);
RgnA := CreatePolygonRgn(TestA,3,Winding);
RgnB := CreatePolygonRgn(TestB,3,Winding);
try
showmessage(IntToStr(CombineRgn(
RgnC,
// handle to destination region
RgnA,
// handle to source region
RgnB,
// handle to source region
RGN_AND
// region combining mode
))+#10+'
NULLREGION: '+IntToStr(NULLREGION)
+#10+'
SIMPLEREGION: '+IntToStr(SIMPLEREGION)
+#10+'
COMPLEXREGION: '+IntToStr(COMPLEXREGION)
+#10+'
ERROR: '+IntToStr(ERROR));
finally
DeleteObject(RgnA);
DeleteObject(RgnB);
DeleteObject(RgnC);
end;
end;
Als Rückgabewert bekomme ich immer '0' also einen Fehler. Hat jemand eine Ahnung warum?
Gruß
Chris