Einzelnen Beitrag anzeigen

Benutzerbild von Thunderchild
Thunderchild

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

Re: Begrenzung/Bereich einer Ellipse !!!

  Alt 16. Mär 2004, 23:09
Zitat von taza:
Bloß wo wird denn da jetzt angezeigt, ob der Klick sich nun auf oder neben der Ellipse befindet

Das macht der Rückgabewert der Funktion; er ist true, wenn der Klick innerhalb der Ellipse ist.

Ich habe das ganze mal getestet und dadurch überarbeitet. Ein Fehler war die Wurzel. Da kam noch n abs() rein und ein round() drum rum. Außerdem hab ich die Endbedingung erweitert.

Beginne eine neue Anwendung, erzeuge einen Eventhandler für Form1.Create und Form1.OnPaint. Ersetze dann den ganzen Implementation-Code durch den folgenden:

Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
begin canvas.Ellipse(20,20,120,80) end;

function MausklickDrin(x,y:integer):boolean; // x,y=Mauskoordinaten
var yEllipse:integer; // Mauskoordinaten
const Mitte_x=70; Mitte_y=50; a=50; b=30;
begin
  x:=x-Mitte_x; y:=y-Mitte_y;
  yEllipse:=round(sqrt(abs((1-x*x/a/a)*b*b)));
  MausklickDrin:=(y>=-abs(yEllipse)) and (y<=abs(yEllipse)) and (x>=-a) and (x<=a)
end;

procedure TForm1.FormMouseDown;
begin if MausklickDrin(x,y) then form1.caption:='Ist drinelse form1.caption:='Ist nicht drin.end;
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