Minkowski-kurva

Minkowski-kurvan  är en klassisk geometrisk fraktal föreslagen av Minkowski . Initiatorn är segmentet och generatorn är en streckad linje av åtta länkar (två lika länkar fortsätter varandra) - se figuren, där det "bipolära hoppet" används som en generator [1] [2]

Egenskaper

Konstruktion via Lindenmayer-systemet

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

Här betyder F "dra en linje", + betyder "sväng höger vid ett hörn", och - betyder "sväng vänster vid ett hörn".

Algoritmexempel

Pytonorm Ett exempel på algoritm i Python som använder sköldpaddsmodulen från sköldpaddor import * def start ( x : float ): """Denna funktion rensar fönstret och får sköldpaddan att gå till start""" clear () penup () x = x om x < 0 annat - x goto ( x , 0 ) pendown () def curve_minkowski ( längd : float , iterationer : int ): """Denna funktion ritar Minkowskis kurva""" om iterationer == 0 : framåt ( längd * 4 ) annars : curve_minkowski ( längd / 4 , iterationer - 1 ) vänster ( 90 ) curve_minkowski ( längd / 4 , iterationer - 1 ) höger ( 90 ) curve_minkowski ( längd / 4 , iterationer - 1 ) höger ( 90 ) curve_minkowski ( längd / 4 , iterationer - 1 ) curve_minkowski ( längd / 4 , iterationer - 1 ) vänster ( 90 ) curve_minkowski ( längd / 4 , iterationer - 1 ) vänster ( 90 ) curve_minkowski ( längd / / _ iterationer - 1 ) höger ( 90 ) curve_minkowski ( längd / 4 , iterationer - 1 ) LÄNGD = 100 # radlängd ITERATION = 3 # iterationsnummer start ( LÄNGD * 2 ) curve_minkowski ( LENGTH , ITERATION ) exitonclick () # funktion för att förhindra att programmet avslutas omedelbart Ett exempel på algoritm i Python som använder Lindenmayer-systemet importera sköldpadda sköldpadda . hideturtle () sköldpadda . spår ( 0 ) sköldpadda . penup () sköldpadda . setposition ( -150 , 0 ) sköldpadda . _ pendown () axiom , tempAx , logic , iterations = 'F' , '' , { 'F' : 'F-F+F+FF-F-F+F' }, 3 för i i intervall ( iterationer ): för j i axiom : tempAx += logik [ j ] om j i logik annars j axiom , tempAx = tempAx , '' för k i axiom : om k == '+' : sköldpadda . vänster ( 90 ) elif k == '-' : sköldpadda . höger ( 90 ) annat : sköldpadda . framåt ( 5 ) sköldpadda . uppdatera () sköldpadda . huvudslinga () Exempel på en algoritm i PHP <?php $i = 2 ; $image = imagecreatetruecolor ( 600 , 400 ); bildfylld rektangel ( $image , 0 , 0 , imagesx ( $image ) - 1 , imagesy ( $image ) - 1 , imagecolorresolve ( $image , 255 , 255 , 255 )); $color = imagecolorresolve ( $image , 0 , 0 , 0 ); drawMinkowski ( $image , 0 , imagesy ( $image ) / 2 , imagesx ( $image ), imagesy ( $image ) / 2 , $i , $color ); /** * Ritar minkowskikurva mellan två punkter. * @return void */ function drawMinkowski ( $image , $xa , $ya , $xi , $yi , $i , $color ) { if ( $i == 0 ) imageline ( $image , $xa , $ya , $xi , $yi , $färg ); annat { // 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 ( $image , $xg , $yg , $xh , $yh , $i - 1 , $color ); drawMinkowski ( $image , $xh , $yh , $xi , $yi , $i - 1 , $color ); } } header ( 'Content-type: image/png' ); imagepng ( $image ); imagedestroy ( $image ); ?>

Anteckningar

  1. Slyusar, V. Fractal Antennas. En i grunden ny typ av "trasiga" antenner. Del 2. . Elektronik: vetenskap, teknik, affärer. - 2007. - Nr 6. S. 85. (2007). Hämtad 6 maj 2020. Arkiverad från originalet 3 april 2018.
  2. Vishnevsky V. M., Lyakhov A. I., Portnoy S. L., Shakhnovich I. V. Trådlösa bredbandsnät för informationsöverföring. — M.: Technosphere. - 2005.- C. 498-569

Litteratur

  • Vishnevsky V. M., Lyakhov A. I., Portnoy S. L., Shakhnovich I. V. Trådlösa bredbandsnät för informationsöverföring. — M.: Technosphere. - 2005.- C. 498-569.

Länkar