Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mathematische Frage: Punkt auf Kreislinie finden… (https://www.delphipraxis.net/119666-mathematische-frage-punkt-auf-kreislinie-finden%85.html)

erich.wanker 29. Aug 2008 13:48


Mathematische Frage: Punkt auf Kreislinie finden…
 
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.

inherited 29. Aug 2008 15:28

Re: Mathematische Frage: Punkt auf Kreislinie finden…
 
Vermutlich ist das problem, dass sin und cos Bogemaß als Parameter erwartet und nicht Winkel. Du musst den Winkel zuerst mit DegToRad() in Bogenmaß umrechnen

erich.wanker 29. Aug 2008 16:35

Re: Mathematische Frage: Punkt auf Kreislinie finden…
 
Yeppp .. das war´s , danke !

X:=Kreis_x+Trunc((sin (DegToRad(Aktueller_Winkel) )) * Kreisradius);
Y:=Kreis_y+Trunc((cos (DegToRad(Aktueller_Winkel) )) * Kreisradius);

....

vielen Dank

Erich


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz