![]() |
---|
Guten Tag, ich möchte für ein Projekt (welches im Bereich der Informatik anzusiedeln ist) eine Funktion schreiben, die die Punkte eines Kreises im 3Dimensionalen Raum berechnet. Dazu reicht es nicht die Normalenform anzugeben, sondern wirklich so effizient wie möglich alle (bzw. eine bestimmte Anzahl mit gleichem Abstand voneinander) Punkte des Kreises anzugeben. Gegeben ist der Mittelpunktmx,my,mz], der Radius die Neigung zur z-Achse zAngle], die Orientierung auf der xy-Ebene [xyAngle] sowie ein Winkel der angeben soll an welchem Punkt die Iteration beginnen soll [sAngle]. Ein Ansatz wäre das hier, aber die Berechnungen habe ich willkürlich zusammengetragen und ergeben nicht wirklich Sinn: loop set mx Cos(currAngle) Cos(xyAngle) Abs(Sin(zAngle)) set my Sin(currAngle) Sin(xyAngle) Abs(Sin(zAngle)) set mz Cos(currAngle) Cos(zAngle) set currAngle = Mod(currAngle+step,PI*2) set rest = rest exitwhen rest endloop Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
Hierzu passend bei OnlineMathe: Online-Übungen (Übungsaufgaben) bei unterricht.de: |
![]() |
![]() |
Ich hab eine Bibliothek zur analytischen Geometrie im CAS Maxima geschrieben http://lemitec.de/load.php?name=News&file=article&sid=79 an gibt es auch Schnittbetrachtungen von Ebene und Kugel, die zu einer Kreisbeschreibung führen. Vielleicht hilft Dir das weiter? Ich weiß jetzt nicht so recht was Du eigentlich auf Deinen Post hören willst... |
![]() |
Gut, ich werde noch einmal klarstellen was ich meine: Ich will mit einer Schleife durch gewisse Punkte eines Kreises iterieren. Ich habe einen Winkel zAngle, der die Neigung des Normalenvektors der Kreisebene zur z-Achse angibt. Ist zAngle = 0°, so ist der Kreis exakt horizontal, ist zAngle = 90°, so ist der Kreis exakt vertikal (Kreisebene parallel zu z-Achse). Ich habe einen Winkel xyAngle, dieser gibt an in welche Richtung der Kreis geneigt wird. Ist zb. xyAngle = 90° und der zAngle = 90° so zeigt der Normalenvektor der Kreisebene in Richtung xyAngle. Mit currAngle iteriere ich. loop set mx Cos(currAngle)*Abs(Cos(zAngle)) radius set my Sin(currAngle)*Abs(Cos(zAngle)) radius set mz Cos(xyAngle-currAngle)*Sin(zAngle) radius set currAngle = currAngle modAngle endloop Diese Schleife funktioniert schon fast. Das heißt, bei zAngle = 0°/270° ist wird der Kreis exakt horizontal erzeugt. Verändert sich zAngle gegen 90°/180° so stimmt die Höhenberechnung weiterhin, aber der Kreis wird oval. Da Cos(zAngle) sich immer mehr an 0 annähert ist kaum verwunderlich, dass die und Berechnung durcheinander gerät. Die Frage ist nun was ich bei der und Berechnung einbauen muss, um das zu starke Abnehmen des "+ . radius" zu verhindern. Ich hoffe es ist nun klarer :-) MfG |
![]() |
Naja, ich kann mit Deiner Kreisgleichung nix anfangen. Bei mir sieht ein Kreis so aus: Kreisgleichung Parameterdarstellung eines Kreises in einer Ebene Kreis: M(Mittelpunkt) r(Radius) zueinander orthogonale Vektoren mit der Länge 1 aus der Ebene in der der Kreis liegt. |
![]() |
Naja gut, vll funktioniert es auf meinem Weg auch gar nicht. Dann werde ich wohl diese Kreisimplementierung verwenden müssen, danke. |