Supportnet / Forum / Anwendungen(Java,C++...)
Kreiszeichnung in C
Frage
Hallo liebes Forum, kann sein, dass das jetzt nicht wirklich hier reinpasst - dann muss es eben gelöscht werden.. Es geht um ein kleines Programm, das ich im Studium programmieren muss - dabei sollen mehrere Linien (ich denke mal 720) von einem gemeinsamen Mittelpunkt auf einen Kreis führen und diesen damit sozusagen bilden. zwischen den Linien soll ein Winkel von 0.5 Grad bestehen (deshalb komme ich auf die 720 Linien) Mein Problem ist, dass ich für die LineTo Fkt. den Startpunkt (ist ja kein Problem - das ist der Mittelpunkt) und den Endwert der Linie brauche - diesen Endpunkt muss ich mir irgendwie berechnen - ich habe es schon über alle möglichen Geometrischen Formeln (Sinussatz, Cosinus, Phytagoras, ...) probiert aber das funktioniert immer nur für die erste Linie - sobald die nächste Gerade schief im Raum liegt funktionieren keine Lote usw mehr - denke ich zu kompliziert ?? Vielleicht kann jemand helfen denn beim googeln komme ich auch nicht mehr weiter - Thanx
Antwort 1 von Pumuckel
die x-Koordinate ergibt sich aus:
x = r * cos [0.5 * t * pi / 180] + const
und y aus
y = r * sin [0.5 * alpha * pi / 180] + const
mit
r = Radius bzw. Länge der Geraden
t = Schrittweite / Schleifeniterationen 0...720
pi = 3.1415...
die Konstante mußt Du noch addieren, um die Koordinaten in die Mitte des Bildschirms zu verschieben, weil der Nullpunkt in einer Ecke des Anzeigefensters ist.
Wenn in der Aufgabe eine Startlinie gegeben ist, mußt Du Dir erst über die Inversion der obigen Gleichungen (also nach t auflösen mit arcsin / arccos) ausrechnen, bei welchem Schritt t diese Startlinie liegt.
x = r * cos [0.5 * t * pi / 180] + const
und y aus
y = r * sin [0.5 * alpha * pi / 180] + const
mit
r = Radius bzw. Länge der Geraden
t = Schrittweite / Schleifeniterationen 0...720
pi = 3.1415...
die Konstante mußt Du noch addieren, um die Koordinaten in die Mitte des Bildschirms zu verschieben, weil der Nullpunkt in einer Ecke des Anzeigefensters ist.
Wenn in der Aufgabe eine Startlinie gegeben ist, mußt Du Dir erst über die Inversion der obigen Gleichungen (also nach t auflösen mit arcsin / arccos) ausrechnen, bei welchem Schritt t diese Startlinie liegt.
Antwort 2 von niels
Vielen Dank !

