Einzelnen Beitrag anzeigen

Alex_ITA01

Registriert seit: 22. Sep 2003
1.130 Beiträge
 
Delphi 12 Athens
 
#1

Prbl. mit zeichnen meiner Kompo (Sin,Cos)

  Alt 12. Mai 2005, 11:37
Hallo erstmal,
ich habe ein komisches Problem und komme da nicht weiter.
Ich hoffe ihr könnt mir helfen...

Folgende Situation:
Ich habe eine eigene Kompo mit einem Kreis in der Mitte. Von diesem Kreis, zeichne ich immer anhand eines Wertes (0-100%) eine Linie vom Mittelpunkt bis zu den Wert in Grad umgerechnet. Z.B. Mein Wert hat 100%, dann zeichne ich einfach eine Linie vom Mittelpunlt bis 0° (also senkrecht nach oben).
Hat mein Wert 25% dann zeichne ich 90° (also waagerecht nach rechts).

Der Wert wird immer vorgegeben...

Jetzt soll der User aber die Möglichkeit haben, die Linie, die ich zeichne selber zu "setzen" (MouseDown) und dementsprechend wird der Wert angepasst.
Ich habe mal eine kleine Grafik angehangen. Die blauen Kreuze kennzeichnen ein möglichen Mausklick. Die gestrichelte Linie in der Mitte stellt eine mögliche Linie vom Mittelpunkt dar.

Das Problem jetzt ist, wenn die Maus irgendwo hin klickt (aber innerhalb meiner Kompo) wie wandle ich den Wert (X,Y) dann so um, damit ich weiß, wohin ich zeichnen muss?

Delphi-Quellcode:
procedure TMeineKompo.Paint;
var
  tmpValue,
  tmpGrad : Double;
  tmpX,
  tmpY : Integer;
begin
  inherited Paint;
  if ComponentState = [csDesigning] then Exit; { Nur zur Laufzeit ausführen }

  tmpValue := Wert; //Enthält mein %Wert
  tmpGrad := (tmpValue * 360) / MaxWert; //Enthält den Maximalwert meines %Wertes (=100)

  tmpX := Round(sin(DegToRad(tmpGrad)) * Radius);
  tmpY := Round(cos(DegToRad(tmpGrad)) * Radius);

  Canvas.MoveTo(Self.Mittelpunkt.X, Self.Mittelpunkt.Y);
  Canvas.LineTo(Self.Mittelpunkt.X + tmpX, Self.Mittelpunkt.Y - tmpY);
end;
Ich hoffe ihr könnt mir irgendwie helfen, die "Umrechnung der Mausposition zu zeichnen"...


MFG Alex
Angehängte Grafiken
Dateityp: bmp kreis_981.bmp (44,6 KB, 16x aufgerufen)
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat