Minkowski-kurve

Minkowski-kurven  er en klassisk geometrisk fraktal foreslået af Minkowski . Initiativtageren er segmentet , og generatoren er en brudt linje på otte led (to lige store led fortsætter hinanden) - se figuren, hvor det "bipolære spring" bruges som generator [1] [2]

Egenskaber

Konstruktion via Lindenmayer-systemet

variabler : F konstanter : + − start : F regel : (F → F−F+F+FF−F−F+F) vinkel : 90°

Her betyder F "tegn en linje", + betyder "drej til højre ved et hjørne", og - betyder "drej til venstre ved et hjørne".

Algoritme eksempler

Python Et eksempel på algoritme i Python, der bruger skildpaddemodulet fra skildpaddeimport * _ def start ( x : float ): """Denne funktion rydder vinduet og får skildpadden til at gå til start""" clear () penup () x = x hvis x < 0 andet - x goto ( x , 0 ) pendown () def curve_minkowski ( længde : float , iterationer : int ): """Denne funktion tegner Minkowskis kurve""" if iterations == 0 : forward ( length * 4 ) else : curve_minkowski ( length / 4 , iterations - 1 ) left ( 90 ) curve_minkowski ( length / 4 , iterations - 1 ) right ( 90 ) curve_minkowski ( length / 4 , iterations - 1 ) højre ( 90 ) curve_minkowski ( længde / 4 , iterationer - 1 ) curve_minkowski ( længde / 4 , iterationer - 1 ) venstre ( 90 ) curve_minkowski ( længde / 4 , iterationer - 1 ) venstre ( 90 ) curve_minkowski , ( længde / / iterationer - 1 ) højre ( 90 ) curve_minkowski ( længde / 4 , iterationer - 1 ) LÆNGDE = 100 # linjelængde ITERATION = 3 # iterationsnummer start ( LÆNGDE * 2 ) curve_minkowski ( LÆNGDE , ITERATION ) exitonclick () # funktion for at forhindre programmet i at afslutte med det samme Et eksempel på en algoritme i Python ved hjælp af Lindenmayer-systemet import skildpadde skildpadde . hideturtle () skildpadde . sporstof ( 0 ) skildpadde . penup () skildpadde . sætposition ( -150 , 0 ) skildpadde . _ pendown () aksiom , tempAx , logik , iterationer = 'F' , '' , { 'F' : 'F-F+F+FF-F-F+F' }, 3 for i i område ( iterationer ): for j i aksiom : tempAx += logik [ j ] hvis j i logik else j aksiom , tempAx = tempAx , '' for k i aksiom : hvis k == '+' : skildpadde . venstre ( 90 ) elif k == '-' : skildpadde . højre ( 90 ) andet : skildpadde . frem ( 5 ) skildpadde . opdatere () skildpadde . hovedsløjfe () Eksempel på en algoritme i PHP <?php $i = 2 ; $image = imagecreatetruecolor ( 600 , 400 ); imagefilledrectangle ( $image , 0 , 0 , imagesx ( $image ) - 1 , imagesy ( $image ) - 1 , imagecolorresolve ( $image , 255 , 255 , 255 )); $farve = billedfarveopløsning ( $billede , 0 , 0 , 0 ); drawMinkowski ( $image , 0 , imagesy ( $image ) / 2 , imagesx ( $image ), imagesy ( $image ) / 2 , $i , $color ); /** * Tegner minkowski-kurve mellem to punkter. * @return void */ funktion drawMinkowski ( $image , $xa , $ya , $xi , $yi , $i , $color ) { if ( $i == 0 ) imageline ( $image , $xa , $ya , $xi , $yi , $farve ); andet { // C---D // | | // A---BE H---I // | | // F---G $xb = $xa + ( $ xi - $ xa ) * 1/4 ; $yb = $ya + ( $ yi - $ ya ) * 1/4 ; $xe = $xa + ( $ xi - $ xa ) * 2/4 ; $ye = $ya + ( $ yi - $ ya ) * 2/4 ; $xh = $xa + ( $ xi - $ xa ) * 3/4 ; $yh = $ya + ( $ yi - $ ya ) * 3/4 ​​; $cos90 = 0 ; $sin90 = - 1 ; $xc = $xb + ( $xe - $xb ) * $cos90 - $sin90 * ( $ye - $yb ); $yc = $yb + ( $xe - $xb ) * $sin90 + $cos90 * ( $ye - $yb ); $xd = $xc + ( $xe - $xb ); $yd = $yc + ( $ye - $yb ); $sin90 = 1 ; $xf = $xe + ( $xh - $xe ) * $cos90 - $sin90 * ( $yh - $ye ); $yf = $ye + ( $xh - $xe ) * $sin90 + $cos90 * ( $yh - $ye ); $xg = $xf + ( $xh - $xe ); $yg = $yf + ( $yh - $ye ); drawMinkowski ( $image , $xa , $ya , $xb , $yb , $i - 1 , $color ); drawMinkowski ( $image , $xb , $yb , $xc , $yc , $i - 1 , $color ); drawMinkowski ( $image , $xc , $yc , $xd , $yd , $i - 1 , $color ); drawMinkowski ( $image , $xd , $yd , $xe , $ye , $i - 1 , $color ); drawMinkowski ( $image , $xe , $ye , $xf , $yf , $i - 1 , $color ); drawMinkowski ( $image , $xf , $yf , $xg , $yg , $i - 1 , $color ); drawMinkowski ( $billede , $xg , $yg , $xh , $yh , $i - 1 , $farve ); drawMinkowski ( $billede , $xh , $yh , $xi , $yi , $i - 1 , $farve ); } } header ( 'Indholdstype: image/png' ); imagepng ( $image ); imagedestroy ( $image ); ?>

Noter

  1. Slyusar, V. Fractal Antennas. En fundamentalt ny type "knækkede" antenner. Del 2. . Elektronik: videnskab, teknologi, forretning. - 2007. - Nr. 6. S. 85. (2007). Hentet 6. maj 2020. Arkiveret fra originalen 3. april 2018.
  2. Vishnevsky V. M., Lyakhov A. I., Portnoy S. L., Shakhnovich I. V. Trådløse bredbåndsnetværk til informationstransmission. — M.: Teknosfære. - 2005.- C. 498-569

Litteratur

  • Vishnevsky V. M., Lyakhov A. I., Portnoy S. L., Shakhnovich I. V. Trådløse bredbåndsnetværk til informationstransmission. — M.: Teknosfære. - 2005.- C. 498-569.

Links