Delphi Code:
function PtInEllipse(const Rect: TRect; const P: TPoint): Boolean;
var
a, b: Integer;
center: TPoint;
begin
// algemene vergelijking van een ellips met center in (0,0)
// x^2/a^2 + y^2/b^2 = 1
// a = halve lange as; b = halve korte as
// ellipse-function in Delphi: ellipse(aRect), waarbij aRect: TRect
// bepaling van de assen:
a := Rect.Width div 2;
b := Rect.Height div 2;
// bepaling van het 'midden' van de ellips:
center.x := Rect.Left + a;
center.y := Rect.Top + b;
// ellips transleren naar (center.x, center.y)
Result := Sqr((P.X - Center.X) / a) +
Sqr((P.Y - Center.Y) / b) <= 1;
end;
Bookmarks