Die Mathematik ist die Sprache der Physik. Aufgrund dieser Elementarität ist die Mathematik die reinste Naturwissenschaft.
Die hier vorgestellten Polyeder werden im dreidimensionalen Raum R³ gedreht. Das Handwerkzeugs hierfür sind Vektoren und Drehmatrizen. Der Rahmen wird durch die Programmiersprache Javascript bereitgestellt.
Dem Betrachter möchte ich hiermit einen kleinen Einblick geben, wie die vorangegangenen Webseiten erschaffen worden sind.
Mathematik
Bei der Programmierung der vorangegangenen Webseiten sieht man, wie die Mathematik arbeitet. Beim Radarplotten sehen wir Drehungen in der Ebene. Hier betreten wir nun den dreidimensionalen Raum.
Matrizen sind bzgl. der Multiplikation nicht kommuntativ sind, d.h. die Matrix A und B sind nicht vertauschbar: AB != BA
Dies hat zur Folge, dass die Polyeder zuerst horizontal gedreht werden, bevor man sie kippt.
Von all unseren Drehungen erwarten wir, dass Abstände und Winkel erhalten bleiben. Mathematisch heißt das, dass die Drehmatrizen orthogonal sein müssen:
|D(φ)| = cos²φ + sin²φ = 1
Beim letzten Rechenschritt nutzen wir den Pythagoras im Einheitskreis.
Programmierung
Das Ästhetische bei Programmiersprachen ist die Definition von sogen. Klassen.
Beispiel:
Ein Vektor v(x,y,z) mit
x-,
y- und
z-Koordinaten:
Gedrehter Vektor vgedreht = D(φ)·v
Definition und Drehung eines Quadrats:
Showeffekte
Wird ein Polyeder gedreht, fragt man sich sofort, ob man die Außen- oder die Innenseite der Flächen sieht. Im letzteren Fall wird die unsichtbare Fläche erst gar nicht dargestellt. Bei transparenten Polyedern werden die Kanten schwächer gezeichnet. Dies verstärkt die dreidimensionale Erscheinung.
Die Lösung zur Unterscheidbarkeit besteht nun darin, dass man zu jeder Fläche einen Normalenvektor berechnet. Dieser steht senkrecht auf der Fläche und zeigt stets nach außen.
Zeigt der Normalvektor aus dem Bildschirm heraus, ist nach obiger Definitionen die x-Komponente positiv. In diesem Fall ist die Fläche sichtbar.
Der Normalenvektor als Kreuzprodukt benötigt zwei Basisvektoren. Hierzu nimmt man Vektoren, die aus den Ecken erzeugt werden. Um einen dieser Kantenvektoren zu erhalten, subtrahiert man entsprechende Ecken vektoriell.
Wichtig dabei ist, dass alle Flächen einen gleichen Drehsinn haben. Es bietet sich an, alle Ecken immer im mathematisch positiven Drehsinn zu nummerieren, also entgegengesetzt des Uhrzeigersinns.
www.harald-blazy.de/
platonische-koerper/
programmierung.html