3D Schnecken-/Muschel-Modell B. Frassek

 

Ein mathematisches Modell für eine Schnecke beruht auf einer 3D logarithmischen Spirale H  (auch Helico-Spirale oder Concho-Spiral [1] ) sowie einer erzeugenden Kurve C, - üblicherweise eine Ellipse - die sich entlang der Spirale windet. Dabei nimmt deren Querschnitt in Richtung Apex (Spitze der Muschel) exponentiell ab:


3D Helico-Spirale
3D Helico-Spirale

Auch ich habe mich mit dieser Thematik beschäftigt und gehe bei der Entwicklung meines Modells zunächst von einem Torus aus (s. Bild rechts) mit der folgenden bekannten Parameterdarstellung [2]

 

x (u, v) = cos(u) [ r cos(v) + R]

y (u, v) = sin(u)  [ r cos(v) + R]

z (u, v) = r sin(v)

 

Hierbei ist r der kleine und R der große Radius des Torus, u und v liegen jeweils im Bereich -π bis π.

Kreistorus
Kreistorus

Ergänzt man z (u, v) noch um den Parameter b

 

z (u, v) = r b sin(v)

 

so erhält man mit b = 1 einen kreisförmigen Querschnitt mit Radius r; für Werte von b ungleich 1 ergibt sich ein Torus mit elliptischem Querschnitt. Hierbei entspricht b > 1 einer Streckung und b < 1 einer Stauchung in z-Richtung (s. Bild rechts).

Kreistorus - elliptischer Querschnitt
Kreistorus - elliptischer Querschnitt

Ersetzt man den konstanten großen Radius R durch den exponentiellen Term e u • w 

 

x (u, v) = cos(u) [ r cos(v) + e u • w ]

y (u, v) = sin(u)  [ r cos(v) + e u • w ]

z (u, v) = r b sin(v)

 

so wird aus dem Torus ein Spiralrohr mit konstanter Querschnittfläche (linkes Bild: b = 1,  rechtes Bild: b > 1), wobei der Parameter w das Wachstum der Spirale bestimmt:

 

Die Intensität des Wachstum kann ergänzend noch mit einem zusätzlichen Faktor d beeinflusst werden:

 

x (u, v) = cos(u) [ r cos(v) + d e u • w ]

y (u, v) = sin(u)  [ r cos(v) + d e u • w ]

z (u, v) = r b sin(v)

 

Die folgenden Bilder zeigen dies für d = 0.2, d = 0.5, d = 1 und d = 1.5.

Wird nun auch der Radius r des Rohrquerschnitts mit dem exponentiellen Faktor e u • w multipliziert

 

x (u, v) = e u • w  cos(u) [ r cos(v) + d ]

y (u, v) = e u • w  sin(u)  [ r cos(v) + d ]

z (u, v) = e u • w  r b sin(v)

 

entsteht eine Spiralfläche, wobei r nun als Parameter für den sich exponentiell ändernden Rohrquerschnitt fungiert (linkes Bild: b = 1,  rechtes Bild: b > 1):

Durch Addition des exponentiellen Faktors  c e u • w   bei der z-Komponente

 

z (u, v) = - e u • w  [ r b sin(v) + c ]

 

erhält man eine ansteigende Spiralfläche, wobei c der Steigungsfaktor ist; das Minuszeichen vor dem Term von z dient nur dazu, dass die Spirale nach unten wächst. Die folgenden Bilder zeigen von links nach rechts die entstehende Spirale für c = 0, c = 1 und c = 2.

Mit dem Faktor D ϵ {-1, 1} bei der x-Komponente kann die Drehrichtung der Spiralfläche festgelegt werden:

für D = -1 ergibt sich eine linksgewundene Spiralfläche (sinistral, s. linkes Bild mit innenliegender Helico-Spirale), für D = 1 eine rechtsgewundene Spiralfläche (dextral):

Somit ist mein Modell fertig:

x (u, v) =  - D m e u • w  cos(u) [ r cos(v) + d ]

y (u, v) =        m e u • w  sin(u)  [ r cos(v) + d ]

z (u, v) =      - m e u • w  [ r b sin(v) + c ]

 

mit

 

r     :  Faktor für sich verändernden Radius des Rohrquerschnitts

b    :  Formfaktor für elliptischen Rohrquerschnitt (b < 1: z-Stauchung, b = 1: Kreis, b > 1: z-Streckung)

c    :  Wachstumsfaktor (z-Richtung)

d    :  Wachstumsfaktor (x/y-Ebene)

w    :  allgemeiner Wachstumsfaktor

D    :  Drehrichtung der Spiralfläche (D = -1: linksdrehend,  D = 1: rechtsdrehend)

m    :  Zoom-Faktor für Bildgröße

 

Während Werte für v stets zwischen -π und π liegen, bestimmt der Wertebereich für u die Anzahl der Windungen der Spiralfläche.

 

Mit diesem einfachen Modell lässt sich bereits eine Vielzahl unterschiedlicher Schnecken und Muscheln modellieren. Dabei mag es zunächst verblüffend erscheinen, dass sich auch "flache", zweischalige Muscheln mit dem Modell erzeugen lassen, wie die folgende Simulation zeigt.

Übergang Schnecke - Muschel
Übergang Schnecke - Muschel

 

Zum eigenen Experimentieren mit Graphing Calculator 3D lässt sich unten im Download-Bereich der Seite eine Graphing Calculator 3D-Datei mit meinem Modell herunterladen.

 

3D Texturen auf Schnecken / Muscheln

Um die erzeugten Muscheln noch "echter", zumindest aber interessanter zu gestalten, kann man außer den in Graphing Calculator 3D möglichen Farbverläufen noch eine "Pseudo-Textur" hinzufügen.

 

Zum einen kann die erzeugte Oberfläche für alle (x,y)-Paare per Zufall etwas kleiner oder größer gemacht, quasi zufällig "eingedellt" bzw. angehoben, werden.  Erreicht wird dies durch Addition des folgenden Terms zur  z-Komponente

 

a (-1) round( rand() )

 

wobei der Faktor a Stärke und Aussehen der Dellen bestimmt und durch Ausprobieren ermittelt wird. 

 

Zum anderen kann eine weitere Farbe oder ein Farbverlauf ungleichmäßig aufgetragen werden.
Hierzu wird die erzeugende Funktion zweimal hintereinander ausgeführt, ebenfalls mit einer additiven Zufallskomponente beim z-Anteil der Funktion. Durch Reduktion der Auflösung für die "Einfärbefunktion" werden so Pünktchen, Linien oder zusammenhängende Farbbereiche auf der Oberfläche erzeugt.

 

Für eine Fantasiemuschel mit den Parametern

r b c d w D m u v
1.15  1 3 1 0.12 1 1 -18 - π
        40 π

zeigen die folgenden Bilder (von links nach rechts): glatte Oberfläche, Oberfläche mit Struktur, glatte Oberfläche mit Farbflecken, Oberfläche mit Struktur und Farbflecken:

Mein Modell kann dahingehend erweitert werden, dass auch Lamellen / Rillen erzeugt werden können.

Hierzu wird zu den x-, y- und z-Komponenten der erzeugenden Funktion folgender Term addiert

 

l sin (L u)     zur Erzeugung senkrechter Lamellen in z-Richtung (s. Bild unten lins)

q sin (Q v)   zur Erzeugung von "Querrillen" in x/y-Richtung (s. Bild unten Mitte) 

 

L und Q bestimmen dabei die Anzahl der Lamellen / Rillen, l und q deren Amplitude; die Werte müssen experimentell bestimmt werden.

 

Auch eine beliebige Kombination der additiven L- und Q-Terme für die x-, y- und z-Komponenten ist möglich, um einen Verbund von Längs- und Querrillen zu erzeugen (s. Bild unten rechts).

 

Mit Hilfe dieser Erweiterung können auch Arten wie die Trog- und Herzmuschel oder der Ammonit erzeugt werden (s. Galerie).

 

Die zuvor beschriebene Technik kann bei einer zweiten nachgeschalteten Kopie der erzeugenden Funktion (s.o.) zur Einfärbung ebenfalls angewandt werden. So können z.B. interessante Farbaufträge erzeugt werden, wie das nächste Bild zeigt.

 

Schnecke - strukturierte Oberfläche mit Lamellen und Farbverlauf
Schnecke - strukturierte Oberfläche mit Lamellen und Farbverlauf

Parametertabelle für eigenes Schnecken-/Muschel-Modell

 

In der folgenden Tabelle sind für einige Muscheln und Schnecken, die ich mit meinem Modell erzeugt habe, die Parameter angegeben.

 

  Typ r b c d w D m umin umax
 Herzmuschel  1 1.1 0 1 1 -1 5E-07 0 6π+1
 Trogmuschel  1 1.6  0 1  1 -1  5E-07  0  6π+1
 Spisula solida  1 1.35 0  1  1 -1 5E-07 0  6π+1
 Cardiodea  1 1.1 0  1  1  -1 5E-07  0 6π+1
 Ammonit  0.5  1 0  1.15 0.15 1 0.1  20 40
 Nautilus  0.9 0.6 0 1  0.2  -1  0.09  0 28
 Ancilla  0.5  2.975 5 0.68 0.058 -1 2  -20 20
 Oliva 0.675 3.92 3.11 0.68 0.058  -1  2  -20 20
 Pseudoheliceras 1 1.1 6 1 0.058  -1 0.5 -22  19
 Charonia  1.08  2.365  8.38  2.3  0.058  -1 0.5 -40 20

 

Hinweis: Der Zoom-Parameter m ist wertemäßig nicht ganz wörtlich zu nehmen, da die Größe des erzeugten

Bildes in erster Linie von den Einstellungen der Achsen und dem allgemeinen Zoom des Plots abhängt. Zumindest aber erhält man durch ihn einen Hinweis auf die Größe des Plot-Wertebereichs und kann so die Achsen entsprechend anpassen.



Download:

 

  Seashell Model B.Frassek