Schon vor einiger Zeit bekam ich den Tip, wie man eine Ellipse begrenzt, d.h. wie man es realisiert, dass wenn man beispielsweise
auf eine Ellipse klickt etwas angezeigt wird, und wenn man
neben diese klickt etwas anderes angezeigt wird !!!
Dies funktioniert so:
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 drin' else form1.caption:='Ist nicht drin.' end;
Das konnte ich auch schön in meinem Programm intigrieren, aber nun stehe ich vor einem neuen Problem !!!
Ich will nun eine Ellipse so einteilen, dass ich bespielsweise sagen kann, dass vom Außenrand bis meinetwegen 100 Pixel nach innen etwas best. gemacht/angezeigt wird und dann ab da bis wieder 100 Pixel nach innen etwas anderes passiert !!!
Ich weiß meine Fragen sind nachwievor sehr speziell und vielleicht nicht so einfach umzusetzen, aber vielleicht weiß ja jemand auch das!
Schon mal vielen Dank !!!!!!!!! 8)