Avgiftskurva
Curve Levy - fraktal . Föreslagen av den franske matematikern P. Levy . Det visar sig att om vi tar en halv kvadrat av formen / \ och sedan ersätter varje sida med samma fragment och upprepar denna operation, i gränsen får vi Levy-kurvan.
L-system som genererar avgiftskurvan:
variabler : F
konstanter : + −
start : F
regler : -F++F-
vinkel : 45°
Egenskaper
- Levy-kurvan är ingenstans differentierbar och inte korrigerbar.
- På vilket intervall som helst av Levy-kurvan finns det punkter med självkorsning.
- Hausdorff-dimensionen för Lévy-kurvans gräns är ungefär 1,9340. (Levy-kurvan består av två lika delar, som var och en liknar hela kurvan med en likhetskoefficient , på grund av frånvaron av signifikanta självkorsningar är dess dimension exakt .)
- Curve Levy - kronan på Pythagoras träd .
Variationer
Standard Levy-kurvan är konstruerad med likbenta trianglar med 45° basvinklar. Variationer av Levy-kurvan kan konstrueras med hjälp av likbenta trianglar med andra vinklar än 45°. Så länge vinkeln är mindre än 60° är varje ny linje kortare än linjen från vilken den är bildad, så att byggprocessen tenderar mot gränskurvan. Vinklar mindre än 45° ger en fraktal som är mindre tätt "vikt".
Ett exempel på algoritm i PHP
<?php
$i = 10 ;
$image = imagecreatetruecolor ( 640 , 480 );
bildfylld rektangel ( $image , 0 , 0 , imagesx ( $image ) - 1 , imagesy ( $image ) - 1 ,
imagecolorresolve ( $image , 255 , 255 , 255 ));
$color = imagecolorresolve ( $image , 0 , 0 , 0 );
drawLevy ( $image , imagesx ( $image ) * 3 / 8 , imagesy ( $image ) * 3 / 8 ,
imagesx ( $image ) * 5 / 8 , imagesy ( $image ) * 5 / 8 , $i , $color );
/**
* Ritar avgiftskurva mellan två punkter.
* @return void
*/
funktion drawLevy ( $image , $xa , $ya , $xc , $yc , $i , $color ) {
if ( $i == 0 )
imageline ( $image , $xa , $ya , $xc , $yc , $color );
annat {
// A---B
// |
// C
$xb = ( $xa + $xc ) / 2 + ( $yc - $ya ) / 2 ;
$yb = ( $ya + $yc ) / 2 - ( $xc - $xa ) / 2 ;
drawLevy ( $image , $xa , $ya , $xb , $yb , $i - 1 , $color );
drawLevy ( $image , $xb , $yb , $xc , $yc , $i - 1 , $color );
}
}
header ( 'Content-type: image/png' );
imagepng ( $image );
imagedestroy ( $image );
?>
Ett exempel på algoritm i Python 3
importera sköldpadda
sköldpadda . hideturtle ()
sköldpadda . spår ( 0 )
sköldpadda . penup ()
sköldpadda . setposition ( -100 , 0 ) sköldpadda . _ pendown ()
axiom , tempAx , logik , iterationer = 'F' , '' , { 'F' : '-F++F-' }, 15
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 . höger ( 45 )
elif k == '-' :
sköldpadda . vänster ( 45 )
annat :
sköldpadda . framåt ( 1 )
sköldpadda . uppdatera ()
sköldpadda . huvudslinga ()
Se även