Delphi-Quellcode:
function IsPointInCircle(point, center : TPoint; radius:double): boolean;
var
distance2 : double;
begin
// Berechnung des Abstands des Punktes vom Mittelpunkt nach Pythagoras
distance2 := Sqr(point.x-center.x) + Sqr(point.y-center.y);
// das Wurzelziehen sparen wir uns, stattdessen wird der Radius ebenfalls quadriert
result := (distance2 <= Sqr(radius));
end;
Und jetzt das Ganze als Einzeiler (zwecks Performance und Vermeidung von Rundungsfehlern):
Delphi-Quellcode:
function IsPointInCircle(point, center : TPoint; radius:double): boolean;
begin
// Berechnung des Abstands des Punktes vom Mittelpunkt nach Pythagoras
// das Wurzelziehen sparen wir uns, stattdessen wird der Radius ebenfalls quadriert
result := ((Sqr(point.x-center.x) + Sqr(point.y-center.y)) <= Sqr(radius));
end;