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 ..