Einzelnen Beitrag anzeigen

Benutzerbild von Thunderchild
Thunderchild

Registriert seit: 12. Nov 2003
Ort: Nohra
139 Beiträge
 
Delphi 7 Personal
 
#2

Re: Begrenzung/Bereich einer Ellipse !!!

  Alt 16. Mär 2004, 16:34
Man könnte sich das ja leicht ausrechnen.
Ellipsengleichung: x²/a²+y²/b²=1 (gibt Ellipse um Nullpunkt mit a=Radius entlang x, b=Radius entlang y)

Diese Gleichung zum Beispiel nach y umstellen.

Aus dem Mausklick das x nehmen und in diese Gleichung für y einsetzen.
Das errechnete y mit dem y des Mausklicks vergleichen.

Beispiel:
Ellipse um den Punkt (100,100) mit Radius 50 entlang x und Radius 30 entlang y.

Delphi-Quellcode:
function MausklickDrin(x,y:integer):boolean; // x,y=Mauskoordinaten
var yEllipse:integer; // Mauskoordinaten
const Mitte_x=100; Mitte_y=100; a=50; b=30;
begin
  // 1. Mausklick in Relation zum Ellipsenmittelpunkt setzen:
  x:=x-Mitte_x; y:=y-Mitte_y;
  // 2. Abstand der Ellipse zur x_achse bei x ermitteln
  yEllipse:=sqrt((1-x*x/a/a)*b*b);
  // 3. Prüfen, ob y innerhalb von ±yEllipse liegt
  MausklickDrin:=(y>=-abs(yEllipse)) and (y<=abs(yEllipse))
end;
(ungetestet)
Das letzte Schöne, das in C geschrieben wurde, war Schuberts 9. Sinfonie.
Meine Softwareseite (Link aktualisiert am 13.12.2006).
  Mit Zitat antworten Zitat