Labels im Kreis anordnen
-
Servus liebe Gemeinde,
ich hab da mal ein kleines Problemchen. Und zwar möchte ich ein paar Labels gleichmäßig verteilt in einem Kreis anordnen. Dazu zeichne ich in der Mitte der Form einen Kreis der sich auch entsprechend der Formgröße in Höhe und Breite anpasst.
und zwar so:
TRect viereck_kreis; int Mitte_x = (MainForm->Width /2); int Mitte_y = (MainForm->Height/2); if(MainForm->Width > MainForm->Height) { viereck_kreis.Top = Mitte_y -(MainForm->Height/4) -40; viereck_kreis.Bottom = Mitte_y +(MainForm->Height/4) -40; viereck_kreis.Left = Mitte_x -MainForm->Height/4; viereck_kreis.Right = Mitte_x +MainForm->Height/4; } else { viereck_kreis.Top = Mitte_y -(MainForm->Width/4) -40; viereck_kreis.Bottom = Mitte_y +(MainForm->Width/4) -40; viereck_kreis.Left = Mitte_x -MainForm->Width/4; viereck_kreis.Right = Mitte_x +MainForm->Width/4; } Canvas->Pen->Color = clGray; Canvas->Pen->Width = 2; Canvas->Ellipse(viereck_kreis);Soo, nun zurück zum eigentlichen Thema. Ich bin heute leider ein bissl zu blöd aus dem Einzelwinkel des entsprechenden Labels die entsprechenden Pixelkoordinaten rauszurechnen. Es wäre schön wenn mir da mal jemand auf die Sprünge helfen könnt wie man das nochmal rausrechnet.
Danke schon mal im Vorraus für eure Bemühungen....
-
x = r * sin(a); y = r * cos(a);wobei r der Radius des Kreises ist und du den Winkel a im Bogenmap angeben mußt: WinkelInGrad * PI / 180
-
danke, das wars was ich gesucht hab..........
MfG der_ric....