Registriert: Di Aug 21, 2012 19:31 Beiträge: 173
Programmiersprache: C#
Moin.
Ich würde gern einen Kreis im R³ aus Dreiecke zeichnen.
Man stelle sich vor, ich habe einen Punkt im Raum. Von diesem Punkt geht ein Vektor in eine bestimmte Richtung weg (normale; ist bekannt). Ich möchte jetzt einen Kreis so zeichnen, das diese bekannte Normale orthogonal zur entstehenden Fläche ist.
Ich finde im Papula leider auf Anhieb nichts.
Wie ist da der mathematische Ansatz?
Grüße!
Edit: Es reicht wenn z.B. alle 45° ein neues Dreieck beginnt. Der Radius wird recht klein gewählt.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Um diese zweidimensionale, kompakte Untermannigfaltigkeit mit Rand des ℝ³ zu erzeugen (merkt man, dass ich demnächst ne Matheprüfung habe?), müsste es eigentlich reichen, die Normale und einen zufälligen, nicht gleichen Vektor herzunehmen. Die beiden kannst du Kreuzprodukten und schon hast du einen Vektor (wir nennen den einfach mal X), der in der Kreisebene liegt.
Den kannst du wieder mit dem Normalenvektor Kreuzprodukten, das ergebnis nennen wir Y. Damit hast du die beiden Vektoren, die den Unterraum des ℝ³ aufspannen, in dem du deinen Kreis erzeugen kannst. Um die Koordinaten zu erhalten, erzeugst du einfach die normalen Koordinaten für die Kreispunkte (mit x:=cos(α), y:=sin(α) für alle α für die du Punkte haben willst) und multiplizierst die Vektoren X und Y mit den Koordinaten. Ich hoffe das war verständlich
Skalieren kannst du das einfach, indem du X und Y vorher noch mit dem Kreisradius multiplizierst.
grüße
ps.: Wenn du die Normale als Z nähmest, könntest du so jedes beliebige Objekt so rotieren, dass es in die Richtung zeigt. Aber: Die Rotation um die Normalenachse ist nicht definiert sondern vom zufälligen Vektor abhängig. Ist also nur für Rotationssymmetrische Dinge sinnvoll, bzw. du brauchst ne gute Methode um den Hilfsvektor zu bestimmen, um da ein definiertes Ergebnis zu erhalten.
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mein erster Gedanke - du hast die Normale gegeben, damit kannst du eine Ebene definieren. Scheidest du nun die Ebene mit einer Kugel, erhälts du auf der Ebene den Schnitt"disk"..
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.