Lol... So früh und so fleißig... ^^
Ich hoffe es stört niemanden, aber ich habe "einfach" geguckt, ob die Entfernung zum Mittelpunkt nicht größer als der Radius ist (Ich hatte vergessen zu sagen, dass es Kreis (r ist immer gleich) ist).
Wenn das Bild 100 px breit und 50 Px hoch ist:
(Change ist eine variable ob gedrückt ist)
Delphi-Quellcode:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
setRegler(Point(50 - X,50 - Y));
end;
procedure TForm1.setRegler(Position : TPoint);
begin
// entfernung zum Mittelpunkt
Label3.Caption := IntToStr(Round(sqrt(IntPower(Position.X, 2) + IntPower(Position.Y, 2))));
// Position (vom Mittelpuknkt)
Label4.Caption := IntToStr(Position.X);
Label5.Caption := IntToStr(Position.Y);
// Regler zeichenen ( wenn er gezichnet werden soll)
if (Change) and (sqrt(IntPower(Position.X, 2) + IntPower(Position.Y, 2)) <= 50) then begin
with Image1.Canvas do begin
Brush.Color := clGray;
Ellipse(0,0, 100,100);
Brush.Color := clBlack;
Ellipse((50 - Position.X) - 3, (50 - Position.Y) - 3, (50 - Position.X) + 3, (50 - Position.Y) + 3);
end;
end;
end;