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
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
- ↑ 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. (obestämd)
- ↑ 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