Minkowskin käyrä
Minkowskin käyrä on Minkowskin ehdottama klassinen geometrinen fraktaali . Aloittaja on segmentti ja generaattori kahdeksan linkin katkoviiva (kaksi samanlaista linkkiä jatkavat toisiaan) - katso kuva, jossa "kaksinapaista hyppyä" käytetään generaattorina [1] [2]
Ominaisuudet
muuttujat : F
vakiot : + −
aloitus : F
sääntö : (F → F−F+F+FF−F−F+F)
kulma : 90°
Tässä F tarkoittaa "vetää viiva", + tarkoittaa "käänny oikealle kulmasta" ja - tarkoittaa "käänny vasemmalle kulmasta".
Algoritmiesimerkkejä
Python
Esimerkkialgoritmi Pythonissa kilpikonnamoduulilla
kilpikonnan tuonnista * _
def start ( x : float ):
"""Tämä toiminto tyhjentää ikkunan ja saa kilpikonnan menemään alkuun"""
tyhjentää ()
poisto ()
x = x jos x < 0 else - x
goto ( x , 0 )
pendown ()
def curve_minkowski ( pituus : float , iteraatiot : int ):
"""Tämä funktio piirtää Minkowskin käyrän"""
jos iteraatiot == 0 :
eteenpäin ( pituus * 4 )
else :
curve_minkowski ( pituus / 4 , iteraatiot - 1 )
vasen ( 90 )
curve_minkowski ( pituus / 4 , iteraatiot - 1 )
oikea ( 90 )
curve_minkowski ( pituus / 4 , iteraatiot - 1 )
oikea ( 90 )
curve_minkowski ( pituus / 4 , iteraatiot - 1 )
curve_minkowski ( pituus / 4 , iteraatiot - 1 )
vasen ( 90 )
curve_minkowski ( pituus / 4 , iteraatiot - 1 )
vasen ( 90 )
curve_minkowski , ( pituus / 4 ) iteraatiot - 1 )
oikea ( 90 )
curve_minkowski ( pituus / 4 , iteraatiot - 1 )
PITUUS = 100 # rivin pituus
ITERATION = 3 # iteraationumero
alku ( PITUUS * 2 )
curve_minkowski ( PITUUS , ITERATION )
exitonclick () # -toiminto estää ohjelmaa poistumasta välittömästi
Esimerkkialgoritmi Pythonissa
Lindenmayer-järjestelmällä
tuontikilpikonna _
kilpikonna . hideturtle ()
kilpikonna . jäljitin ( 0 )
kilpikonna . penup ()
kilpikonna . asetus ( -150 , 0 ) kilpikonna . _ kynä ()
aksiooma , tempAx , logiikka , iteraatiot = 'F' , '' , { 'F' : 'F-F+F+FF-F-F+F' }, 3
i :lle alueella ( iteraatiot ) :
j : lle aksioomassa :
tempAx += logiikka [ j ] jos j logiikassa else j aksiooma , tempAx = tempAx , ' '
k :lle aksioomassa : jos
k == ' +' :
kilpikonna . vasen ( 90 )
elif k == '-' :
kilpikonna . oikea ( 90 )
muu :
kilpikonna . eteenpäin ( 5 )
kilpikonna . päivitä ()
kilpikonna . pääsilmukka ()
Esimerkki PHP:n algoritmista
<?php
$i = 2 ;
$image = imagecreatetruecolor ( 600 , 400 );
imagefilledrectangle ( $image , 0 , 0 , imagesx ( $image ) - 1 , imagesy ( $image ) - 1 ,
imagecolorresolve ( $image , 255 , 255 , 255 ));
$väri = imagecolorresolve ( $kuva , 0 , 0 , 0 );
drawMinkowski ( $image , 0 , imagesy ( $image ) / 2 , imagesx ( $image ), imagesy ( $image ) / 2 , $i , $color );
/**
* Piirtää minkowskin käyrän kahden pisteen väliin.
* @return void
*/
function drawMinkowski ( $image , $xa , $ya , $xi , $yi , $i , $color ) {
if ( $i == 0 )
kuvalinja ( $image , $xa , $ya , $xi , $yi , $väri );
muuten {
// 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 ;
90 dollaria = 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 ( $kuva , $xa , $ya , $xb , $yb , $i - 1 , $väri );
drawMinkowski ( $kuva , $xb , $yb , $xc , $yc , $i - 1 , $väri );
drawMinkowski ( $kuva , $xc , $yc , $xd , $yd , $i - 1 , $väri );
drawMinkowski ( $kuva , $xd , $yd , $xe , $ye , $i - 1 , $väri );
drawMinkowski ( $kuva , $xe , $ye , $xf , $yf , $i - 1 , $väri );
drawMinkowski ( $kuva , $xf , $yf , $xg , $yg , $i - 1 , $väri );
drawMinkowski ( $kuva , $xg , $yg , $xh , $yh , $i - 1 , $väri );
drawMinkowski ( $kuva , $xh , $yh , $xi , $yi , $i - 1 , $väri );
}
}
header ( 'Content-type: image/png' );
imagepng ( $image );
imagedestroy ( $image );
?>
Muistiinpanot
- ↑ Slyusar, V. Fraktaaliantennit. Pohjimmiltaan uudenlainen "rikkinäinen" antenni. Osa 2 . Elektroniikka: tiede, teknologia, liiketoiminta. - 2007. - nro 6. S. 85. (2007). Haettu 6. toukokuuta 2020. Arkistoitu alkuperäisestä 3. huhtikuuta 2018. (määrätön)
- ↑ Vishnevsky V. M., Lyakhov A. I., Portnoy S. L., Shakhnovich I. V. Langattomat laajakaistaverkot tiedonsiirtoon. — M.: Teknosfääri. - 2005.- C. 498-569
Kirjallisuus
- Vishnevsky V. M., Lyakhov A. I., Portnoy S. L., Shakhnovich I. V. Langattomat laajakaistaverkot tiedonsiirtoon. — M.: Teknosfääri. - 2005.- C. 498-569.
Linkit