3D Kreis berechnen

06/21/2015 13:53 Croco™#1
Hey,
ich bräuchte Hilfe bei einer Funktion.
Als Parameter soll diese X und Y als Koordianten eines Mittelpunktes haben, r als Radius des Kreises der um diesen verläuft, rY als rotation des Kreises auf der Y-Achse und t als anzahl an Punkten des Kreises.

Die Funktion soll nun alle Punkte (t) berechnen, in einem array abspeichern und mit GDI+ zeichnen.

Bis jetzt weis ich wie man einen 2D Kreis berechnet nur leider nicht wie man diesen dreht und wieder 2D Koordinaten herausbekommt.

MfG Croco
06/21/2015 14:57 warfley#2
Punkt Rotation um den Mittelpunkt müsste etwa so funktionieren:

Du hast deine Punkte als (x, y) aus R^2. Daraus machst du zunächst mal einen Vektor in R^3: (x, y) -> (x, y, z) mit z = 0
Die Entfernung zum Mittelpunkt ist also Wurzel(x^2 + y^2+z^2). Für die Rotation muss das erhalten bleiben, also rechnest du das aus.
Um nun einen Punkt (x, y, z) um u° um z.b. die z-Achse zu drehen müsstest du dann so rechnen (wenn ich jetzt keinen Denkfehler drin habe)
Sinus(u) = z / Entfernung => Sinus(u)* Entfernung = z und wurzel(x^2+y^2) = Entfernung * Cosinus(u)

Und um wieder 2D Koordinaten zu haben nutze einfach die funktion R^3->R^2: (x, y, z) -> (x, y)


Aber wenn es nur um das darstellen geht nimm besser OpenGL oder DirectX damit ist das um Welten einfacher
06/21/2015 15:27 Croco™#3
Vielen dank schon mal.
Es geht eher um das Array mit den berechneten Punkten. Die GDI Zeichnung dient lediglich der Visualisierung ob alles gepasst hat :)
Ich melde mich wenn ich ergebnisse/fragen habe.

MfG Croco