Benutzer:Alva2004/Baustelle

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Hexagonale Kreispackung

Die hexagonale Kreispackung der Ebene füllt diese mit nicht überlappenden Kreisen aus, die sämtlich genau sechs Kreise berühren.

Die Doyle Spirale ist eine Kette voneinander tangierenden Kreisen, deren Mittelpunkte wie die der schraffierten Kreise im oberen Bild auf logarithmischen Spiralen liegen und deren Radien eine geometrische Folge bilden. Das Bild ist eine Illustration zur Blattstellung der Echten Kamille und Magerwiesen-Margerite. Die äußeren, dem Licht ausgesetzten Teile wachsen schneller als die inneren Teile, mit der Tendenz, den Stiel um den Pol zu drehen.[1] In hexagonalen Kreispackungen liegen die Mittelpunkte aller Kreise auf Doyle Spiralen, Kreisen oder Geraden.

Hexagonale Kreispackungen werden bis auf Ähnlichkeit durch zwei Parameter p und q eindeutig[2]:40[3]:146 bestimmt, die bei den Bildern in Klammern angegeben sind. Nach Drehungen mit dem p-ten Teil einer Volldrehung gehen die in den Bildern blau gezeichneten Spiralen ineinander über. Entsprechendes gilt für q und die roten Spiralen sowie für (q−p) und die gelb-grünen Spiralen. Teilerfremde p und q führen zu unsymmetrischen Packungen (A). Wenn p und q nicht teilerfremd sind, entsteht eine drehsymmetrische Packung (B,C),[2]:56 und wenn q=2p entarteten einige Spiralen zu Geraden (C). Bei gleichem p und q, wie im Bild D, werden einige Spiralen zu Kreisen.

Eine Gruppe von sieben Kreisen, von denen sechs einen siebten zentralen umgeben, werden Blüten genannt, und die sechs äußeren Kreise bilden ihre Blätter.[2]:39–40 In jedem Kreismittelpunkt einer unsymmetrischen Packung treffen sich drei Spiralen, auf denen die Verhältnisse der Radien aufeinander folgender Kreise jeweils gleich sind, siehe #Eigenschaften der Blüten. Wenn die Verhältnisse der Radien auf zwei der Spiralen a bzw. b sind, dann nehmen die Radien auf der dritten Spirale im Verhältnis a/b oder a·b zu. Damit das möglich ist, müssen die Kreismittelpunkte der Blätter einer Blüte auf einem kartesischen Oval liegen, siehe das Bild in #Berechnung der Packung. Die Kreise auf sich nicht schneidenen Spiralen folgen lückenlos und überschneidungsfrei aufeinander, wenn ap=bq ist, woraus die Zahlen a und b bestimmt werden können, siehe #Eigenschaften der Spiralen. Allerdings sind nur in wenigen Fällen exakte Werte bekannt, siehe #Berechnung der Packung, weswegen im Allgemeinen die Zahlen a und b numerisch ermittelt werden müssen.

Gleichmäßige hexagonale Kreispackung

Die im ersten Bild oben gezeigte Zeichnung gibt eine Beobachtung wieder, die 1910 bei der Magerwiesen-Margerite gemacht wurde.[1] Peter Doyle war möglicherweise der erste, der hexagonale Kreispackungen konstruierte.[4][5] László Fejes Tóth[6] stellte 1977 die Vermutung auf, dass in hexagonalen Kreispackungen das Verhältnis des Radius des kleinsten vorkommenden Kreises zum größten entweder eins ist (in der gleichmäßigen Packung im Bild) oder null sonst. Diese Vermutung wurde 1983 von Imre Bárány, Zoltán Füredi und János Pach bewiesen.[7] Die bis auf Ähnlichkeit eindeutige Bestimmung durch zwei ganzzahlige Parameter, die Orte der Kreise und ihrer Radien sowie der Zusammenhang mit der Exponentialfunktion wurde 1994 von Beardon, Dubejko und Stephenson gezeigt.[2]

Im Artikel von Beardon, Dubejko und Stephenson werden folgende Begriffe definiert, die auch in diesem Artikel benutzt werden:[2]:39–40

  • Eine Gruppe von sieben Kreisen, von denen sechs einen siebten inneren Kreis umgeben, heißt Blüte (englisch flower), wo der innere Kreis das Zentrum (englisch center) und die umgebenden Kreise Blütenblätter (englisch petals), im Folgenden kurz Blätter, sind.
  • Eine hexagonale Kreispackung ist eine Menge von Kreisen,
    • in der jeder Kreis das Zentrum einer Blüte ist,
    • in der bei aufeinander folgenden Blättern B1, B2, und B3 um das Zentrum C auch B3, C, B1 Blätter mit Zentrum B2 sind, und
    • in der zwei beliebige Kreise durch eine endliche Kette von Kreisen verbunden werden kann, in der jeder Kreis Blatt seines Vorgängers ist.
  • Eine Kreispackung aus identischen oder nicht überlappenden Kreisen ist kohärent (englisch coherent); es können auch Packungen mit überlappenden Kreisen oder mit zusätzlichen Berührungspunkten definiert werden.
  • Eine Gruppe von drei Kreisen, die sich paarweise berühren und nicht durchdringen ist eine Zelle (einer Elementarzelle in der Kristallographie entsprechend.)
  • Eine Zelle oder eine Blüte ist eine erzeugende (englisch generic), wenn sie zu einer hexagonalen Kreispackung gehört und nicht alle Radien der Kreise gleich sind.
  • In der gleichmäßigen Kreispackung (englisch regular) sind alle Kreise gleich groß.

In diesem Artikel wird die gleichmäßige Kreispackung nur am Rand erwähnt und eine ungleichmäßige Kreispackung mit unterschiedlich großen Radien vorausgesetzt.

Durchgängig wird die komplexe Zahlenebene benutzt, in der jeder Punkt X durch eine komplexe Zahl zX=x+i·y, x,y∈ und i2=−1 repräsentiert wird.

Berechnung der Packung

[Bearbeiten | Quelltext bearbeiten]
(3,5) Blüte (rot und grau) mit kartesischem Oval (fett schwarz)

Eine hexagonale Kreispackung wird durch zwei Parameter p,q∈ beschrieben, die die Ungleichungen[2]:55,69

0 < p ≤ q ≤ 2p, q > 2

erfüllen und die Anzahl der Doyle-Spiralen in der Kreispackung festlegen. Dann gibt es eine hexagonale Kreispackung, in der die Mittelpunkte der Kreise in den Punkten[8]

z = αj·βk = αj+k·γk für j, k ∈ ℤ, γ := β/α

liegen, wobei α und β zwei komplexe Zahlen sind. Die Doyle-Spiralen gehören zu konstantem k (rot in den Bildern), konstantem j (blau) und konstantem (j+k) (gelb-grün). Die Parameter α und β bestimmen sich aus den Bedingungen[2]:47f[9]:318

und[2]:54

log(α) − q·log(β) = i·2·π·n für ein n ∈ .

Die Lösungen α und β dieser Gleichungen sind algebraische Zahlen.[9]:314 Der Radius eines Kreises mit Mittelpunkt in z ist[9]:313

In diesen normalisierten Kreispackungen

  • ist der Radius eines Kreises proportional zum Abstand des Kreismittelpunkts vom Ursprung,
  • konvergieren die Doyle-Spiralen mit kleiner werdendem j und k gegen den Ursprung bei z=0, und es
  • hat ein Zentrum den Mittelpunkt bei z=1 und die Mittelpunkte seiner Blätter liegen auf einem kartesischen Oval, das eine Niveaulinie der Funktion[2]:47
ist.

Andere ähnliche hexagonale Kreispackungen entstehen durch zentrische Streckung, Verschiebung und/oder Drehung.

Die Tabelle enthält Spezialfälle, in denen analytische Lösungen obiger Gleichungen bekannt sind.[9]:318 Im Allgemeinen müssen Lösungen numerisch ermittelt werden. Benutzt werden die Funktionen tan, cos, sec, exp und der Überstrich bedeutet die komplexe Konjugation.

p q α, β Bemerkung
0 0 Gleichmäßige Kreispackung
2 3 siehe Coxeters loxodromische Folge von tangierenden Kreisen
p p Die Kreismittelpunkte γj·αj+k mit j+k = const. liegen auf konzentrischen Kreisen um den Fixpunkt.
p 2p Die zu αj·βk, k=const. gehörenden Kreismittelpunkte liegen auf Geraden durch den Fixpunkt.

Eigenschaften der Blüten

[Bearbeiten | Quelltext bearbeiten]
Blüte einer hexagonalen Kreispackung

Peter Doyle entdeckte[2]:41, dass um einen Zentrumskreis sechs tangierende Kreise gelegt werden können, deren Radien r0,…,5 nacheinander in den Verhältnissen a, b, b/a, 1/a, 1/b und a/b zum Radius r des Zentrums stehen, siehe Bild.

Die aufeinander folgenden Blätter werden von null bis fünf nummeriert. Bei drei aufeinander folgenden Blättern um das Zentrum mit Radius r gilt:[2]:47

r = rj−1·rj+1/rj

und außerdem[3]:146

r2 = rj·rj+3, r3 = rj·rj+2·rj+4

Hier wie im Folgenden ist bei den Indizes, sofern sie außerhalb des Bereichs null bis fünf liegen, ihr Rest bei Division durch sechs zu nehmen. Ist beispielsweise j+3=7, dann ist oben rj+3=r1 einzusetzen.

Zu jedem Blatt gibt es einen Kreis, der

  • durch die beiden Berührungspunkte mit seinen Nachbarblättern und
  • durch die beiden Berührungspunkte seiner Nachbarblätter mit dem Zentrumskreis

führt. Alle diese Kreise einer Blüte schneiden sich zudem in einem Punkt.[3]:143

Besitzt jedes Blatt k den Berührungspunkt zk mit dem Zentrum sowie die Berührungspunkte wk mit seinem Nachfolger und wk−1 mit seinem Vorgänger, dann wird hiermit die Kennzahl

verbunden. Dann gilt für k=0,…,5:[3]:144

Eigenschaften der Spiralen

[Bearbeiten | Quelltext bearbeiten]
Blüte einer hexagonalen Kreispackung

Im Viereck ABCD werden lineare Abbildungen der Form f(z)=mf·z+nf und g(z)=mg·z+ng definiert, sodass[2]:44

f(zA)=zB, f(zD)=zC, g(zA)=zD, g(zB)=zC

Diese Abbildungen erzeugen eine Gruppe G, deren Elemente durch diese Abbildungen miteinander verknüpft sind. Die Mittelpunkte der Kreise der hexagonalen Kreisfüllung sind die Elemente dieser Gruppe. Die Abbildungen haben denselben Fixpunkt

der der Ursprung der Doyle-Spiralen ist, die ihn jedoch nie erreichen: Der Fixpunkt ist kein Element der Gruppe G. Normalisierung der Kreise und Radien der Blüte mittels

ergibt eine Blüte mit Fixpunkt ζ = 0 und zA = 1, wo die Funktionen f und g reine Proportionalitäten darstellen: f(z) = αz und g(z) = γz, γ=β/α. Mit den Beträgen a=|α| und b=|β| zeigen die Radien die im Bild angegebenen Verhältnisse. Dadurch ist[2]:45

zA=1, zB=α, zC=αγ=β, zD=γ=β/α, zE=1/α, zF=1/(αγ)=1/β und zG=1/γ=α/β.

Im Viereck ABCD gilt mit a=|α|, b=|β| und g=|γ|=b/a:

A=1, B=α, C=β, D=β/α, |B−A|=ar+r, |C−A|=br+r, |D−A|=gr+r

Daraus folgt:

|B−A|=|α−1|=r(1+|α|), |C−A|=|αγ−1|=r(1+|αγ|), |D−A|=|γ−1|=r(1+|γ|)

und daher

Die Mittelpunkte z der Kreise der Packung haben die Form z=αj·βk mit j,k∈ℤ.[2]:46 Festes j liefert die Punkte auf den im Bild blau gezeichneten Spiralen, die Punkte auf den im Bild grün gezeichneten Spiralen haben gleiches j+k, und ein festes k ergibt Punkte auf den roten Spiralen. Speziell haben die Kreise auf der Spirale S1 die Mittelpunkte z=αj und die auf S2 Mittelpunkte in z=αj·β. In einer hexagonalen Kreispackung schließt sich daran die Spirale S3 mit Mittelpunkten αj·β2 an, und so fort, bis sich die Spirale Sq mit Mittelpunkten z=αj·βq−1 an S1 anschließt. Die Mittelpunkte auf S1 haben somit die beiden Darstellungen z=αjm·βq, j,m∈ℤ, mit der Konsequenz, dass mit p=j−m für ein n∈ℤ

α−p·βq = 1 = exp(i·2·π·n)

folgt. Der komplexe Logarithmus log als Umkehrfunktion der Exponentialfunktion exp liefert schließlich

q·log(β) − p·log(α) = i·2·π·n

Das erklärt die Bestimmungsgleichungen in #Berechnung der Packung.[8]

Programmierung der Bilderstellung

[Bearbeiten | Quelltext bearbeiten]

Die gegebene Beschreibung einer hexagonalen Kreispackung lässt sich ohne weiteres in ein Computerprogramm zum Erstellen von Bildern von hexagonalen Kreispackungen umsetzen, siehe auch #Weblinks. Die Python Klasse HexagonaleKreispackung erstellt aus den Parametern p, q und einem Dateinamen eine SVG-Datei, mit einer hexagonalen Kreispackung.

import math
class HexagonaleKreispackung:
    'Klasse mit Methoden zur hexagonalen Kreispackung'
    R0=0.7 # kleinster radius
    L=100. # halbe bildbreite
    KOPF='<?xml version="1.0" standalone="no"?>\n<svg xmlns="http://www.w3.org/2000/svg"\nxmlns:xlink="http://www.w3.org/1999/xlink"\nwidth="400px" height="400px"\nviewBox="-%d -%d %d %d">\n<g id="{all}" fill="none">\n<rect id="bg" fill="white" x="-%d" y="-%d" width="%d" height="%d"/>\n<g id="{circles}" stroke="black" stroke-width="1">\n'
    #--------------------------------------------------------------------------
    def __init__( self, p=3, q=4, name='tmp.svg' ):
        'erstellt svg mit kreispackung'
        lsg = self.loesung( p, q, p*1./q, 2*math.pi/q )
        k   = self.kreise( q, lsg )
        self.ausgabe( k, name )
    #--------------------------------------------------------------------------
    def loesung( self, p, q, pq, wQ ):
        'berechnet aus p und q alpha und beta, hier a und b mit newton-raphson'
        eQ = complex( math.cos( wQ ), math.sin( wQ ) )
        ( xA, yA ) = ( math.tan( 0.8 + 2./q ), 0. ) # bewaehrte anfangswerte
        for j in range( 15 ):
            zA = complex( xA, yA )
            ( wA, zB ) = ( math.atan2( yA, xA ), zA**pq*eQ )
            ( A, B, xB, yB ) = ( abs( zA ), abs( zB ), zB.real, zB.imag )
            ( u, v, w ) = ( abs( zA - 1. ), abs( zB - 1. ), abs( zA - zB ) )
            # zielfunktionen
            f1 = ( 1. + B )*u - ( 1. + A )*v
            f2 = (  A + B )*u - ( 1. + A )*w
            if abs( f1 ) + abs( f2 ) < 1.e-10:
                break
            # ableitungen: Yx = dY/dxA, Yy = dY/dyA
            ( Ax, Ay, wAx, wAy ) = ( xA/A, yA/A, -yA/A**2, xA/A**2 )
            ( wB, d )  = ( pq*wA + wQ, pq*A**( pq - 1. ) )
            ( Bx, By, cw, sw ) = ( d*Ax, d*Ay, math.cos( wB ), math.sin( wB ) )
            # zB = xB + 1j*yB = B*( cos( pq*wA + wQ ) + 1j*sin( pq*wA + wQ ) )
            ( xBx, xBy ) = ( Bx*cw - B*sw*pq*wAx, By*cw - B*sw*pq*wAy )
            ( yBx, yBy ) = ( Bx*sw + B*cw*pq*wAx, By*sw + B*cw*pq*wAy )
            ( ux, uy )   = ( ( xA - 1. )/u, yA/u )
            ( vx, vy )   = ( ( B*Bx - xBx )/v, ( B*By - xBy )/v )
            wx  = ( ( xA - xB )*( 1. - xBx ) - ( yA - yB )*yBx )/w
            wy  = ( -( xA - xB )*xBy + ( yA - yB )*( 1. - yBy ) )/w
            f1x = Bx*u + ( 1. + B )*ux - Ax*v - ( 1. + A )*vx
            f1y = By*u + ( 1. + B )*uy - Ay*v - ( 1. + A )*vy
            f2x = ( Ax + Bx )*u + ( A + B )*ux - Ax*w - ( 1. + A )*wx
            f2y = ( Ay + By )*u + ( A + B )*uy - Ay*w - ( 1. + A )*wy
            # loesung: f1 + f1x*dx + f1y*dy = f2 + f2x*dx + f2y*dy = 0
            det = f1y*f2x - f1x*f2y
            if det == 0.:
                raise ValueError( 'det == 0: keine loesung gefunden.' )
            ( dx, dy ) = ( ( f1*f2y - f1y*f2 )/det, ( f1x*f2 - f1*f2x )/det )
            xA += dx
            yA += dy
        else:
            raise ValueError( 'nach 15 schleifen keine loesung gefunden.' )
        if A < 1:
            ( zA, zB, A, B ) = ( 1./zA, 1./zB, 1./A, 1./B )
        return ( zA, zB, A, B ) # alpha, beta, A, B
    #--------------------------------------------------------------------------
    def kreise( self, q, lsg ):
        'gibt [ ( zj,rj ), ... ] mit mittelpunkten zj und radien rj der kreise'
        ( a, b, A, B )   = lsg
        ( r, logA, ans ) = ( abs( a - 1 )/( 1 + A ), math.log( A ), [] )
        for k in range( q ):
            ( bk, rBk ) = ( b**k, r*B**k )
            mn = range( int( math.log( self.R0/rBk )/logA ),
                        int( math.log( 1.5*self.L*r/rBk )/logA ) + 2 )
            ans.extend( [ ( bk*a**j, rBk*A**j ) for j in mn ] )
        return ans
    #--------------------------------------------------------------------------
    def ausgabe( self, kreise, name ):
        'erstellt svg-datei name mit kreisen'
        ( L, B ) = ( self.L, 2*self.L )
        img = open( name, 'w' )
        img.write( self.KOPF%( L, L, B, B, L, L, B, B ) )
        for j in range( len( kreise ) ):
            ( z, r ) = kreise[ j ]
            img.write( '<circle id="circle%d" cx="%1.2f" '%( j, z.real )
                       + 'cy="%1.2f" r="%1.2f"/>\n'%( z.imag, r ) )
        img.write( '</g><!-- {circles} -->\n</g><!-- {all} -->\n</svg>\n' )
        img.close()
    #--------------------------------------------------------------------------
if __name__=='__main__':
    HexagonaleKreispackung( 6, 9, 'tmp.svg' )

Die in den Bildern oben verwendeten Parameter sind in der Tabelle angegeben.

p q a=α b=β
3 5 4.758594984134-0.790055569443j 1.031428347538+2.354570863015j
3 6 3.632004438734 0.952890922238+1.650455491387j
4 7 2.929120952429-0.248993184422j 1.223371443969+1.390189218045j
5 5 2.602621487710+1.890915195122j 2.602621487710-1.890915195122j
9 15 1.616804175669-0.089196924845j 1.237179552586+0.502501389737j
  1. a b siehe A. Emch: Sur quelques exemples mathématiques dans les sciences naturelles. In: L’Enseignement mathématique. Band 7, 1910, S. 122 (französisch, e-periodica.ch [abgerufen am 26. Dezember 2024]). oder A. Emch: Mathematics and engineering in nature. In: Popular Science. Band 79, 1911, S. 455 (englisch, archive.org [abgerufen am 19. Dezember 2024]).
  2. a b c d e f g h i j k l m n A. F. Beardon, T. Dubejko, K. Stephenson: Spiral Hexagonal Circle Packings in the Plane. In: Geometriae Dedicata. Band 49. Kluwer Academic Publishers, 1994, S. 39–70.
  3. a b c d A. I. Bobenko, T. Hoffmann: Conformally Symmetric Circle Packings. A Generalization of Doyle's Spirals. In: Experimental Mathematics. Band 10, Nr. 1, 2001, S. 141–150, doi:10.1080/10586458.2001.10504437.
  4. O. Schramm: Circle Patterns with the Combinatorics of the Square Grid. In: Duke Mathematical Journal. Band 86, Nr. 2, 1997, S. 347.
  5. I. Carter, B. Rodin: An Inverse Problem for Circle Packing and Conformal Mapping. In: Trans. Amer. Math. Soc. Band 334, 1992, S. 861–875, doi:10.1090/S0002-9947-1992-1081937-X (ams.org – Hier wird eine mündliche Mitteilung von Doyle zitiert).
  6. L. Fejes Tôth, Research problem, Periodica Math. Hung. 8 (1977), 103-10, zitiert nach Bárány, Füredi, Pach: Discrete convex functions and proof of the six circle conjecture of L. Fejes Toth (1983)
  7. Bárány, Füredi, Pach: Discrete convex functions and proof of the six circle conjecture of L. Fejes Toth. In: Canadian J. Mathematics. Band 36, 1983, S. 569–576 (cambridge.org).
  8. a b In Beardon, Dubejko, Stephenson (1994), S. 46f, entspricht β hiesigem γ.
  9. a b c d D. Wright: Spaces of Kleinian Groups. Searching for the cusp. In: Y.N.Minsky, M. Sakuma (Hrsg.): Lond. Math. Soc. Lec. Notes. Cambridge University Press, 2006, ISBN 978-1-139-10699-3, S. 301–336, doi:10.1017/CBO9781139106993.016 (okstate.edu [PDF; abgerufen am 25. Dezember 2024]).

Kategorie:Ebene Geometrie