Einzelnen Beitrag anzeigen

Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
460 Beiträge
 
Delphi XE4 Professional
 
#1

Mathematische Frage: Punkt auf Kreislinie finden…

  Alt 29. Aug 2008, 14:48
Hallo Leute,

Ich will Labels untereinander darstellen. Die sollen aber nicht linksbündig untereinander stehen, sondern einen Kreisausschnitt bilden.

Ich geh mal davon aus, das der oberste punkt auf einem Kreis den Winkel 0 hat..

Mittelpunkt des Kreises: 100 / 300
Radius: 200 Pixel
Winkelschritte: 10 Grad
Start bei 10 Grad ( ca. 2 Minuten nach zwölf Uhr )
Anzahl Labels 10 Stk.


Irgendwie schaff ich´s nicht

Im rechtwinkligen Dreieck:
Ich hab den Winkel Alpha, Die Hypotenuse ist der Radius und gesucht sind die 2 Katheten

Hoffe, es kann mir jemand helfen..

Vielen Dank
Erich

----------------------------------------------------

// kleiner Blindtext…//

uses math...

procedure TForm1.SpeedButton1Click(Sender: TObject);
Var
My_label: array [0..9] of tlabel;

Winkelschritte,
Startwinkel,
Kreis_x,
Kreis_y,
Kreisradius,
Aktueller_Winkel: Integer;

i:Integer;

x,y:Integer;

begin

// init..
Label1:=my_label[0];
Label2:=my_label[1];
Label3:=my_label[2];
Label4:=my_label[3];
Label5:=my_label[4];
Label6:=my_label[5];
Label7:=my_label[6];
Label8:=my_label[7];
Label9:=my_label[8];
Label10:=my_label[9];

Winkelschritte:=10;
Startwinkel:=10;
Kreis_x:=300;
Kreis_y:=300;
Kreisradius:=200;
Aktueller_Winkel:=0;


For i:= 0 to 9 do
Begin

Aktueller_Winkel:=Startwinkel+(Winkelschritte*i);

// HIER GEHT´S LOS !! //
X:=Kreis_x+ Trunc((sin (Aktueller_Winkel)) * Kreisradius);
Y:=Kreis_y+ Trunc((cos (Aktueller_Winkel)) * Kreisradius);


// HIER ENDET´S !! //
my_label[i].left:= x;
my_label[i].top:= y;

End; // for i
End; //procedure

end.
Erich Wanker - for life:=1971 to lebensende do begin ..
  Mit Zitat antworten Zitat