Minkowski görbe
A Minkowski-görbe egy klasszikus geometriai fraktál , amelyet Minkowski javasolt . A kezdeményező a szegmens , a generátor pedig nyolc láncszemből álló szaggatott vonal (két egyenlő lánc folytatja egymást) - lásd az ábrát, ahol a „bipoláris ugrást” generátorként használják [1] [2]
Tulajdonságok
változók : F
állandók : + −
kezdés : F
szabály : (F → F−F+F+FF−F−F+F)
szög : 90°
Itt az F jelentése "vonalat húzni", a + azt jelenti, hogy "saroknál jobbra fordulni", a - pedig "saroknál balra fordulni".
Algoritmus példák
Piton
Példa algoritmus Pythonban a teknős modul használatával
teknős importból * _
def start ( x : float ):
"""Ez a funkció törli az ablakot, és elindítja a
teknősöt """ clear () felemelés
() x = x if x < 0 else - x goto ( x , 0 ) pendown ()
def curve_minkowski ( hossz : float , iterációk : int ):
"""Ez a függvény Minkowski görbéjét rajzolja"""
if iterációk == 0 :
előre ( hossz * 4 )
else :
curve_minkowski ( hossz / 4 , iterációk - 1 )
balra ( 90 )
curve_minkowski ( hossz / 4 , iterációk - 1 )
jobb ( 90 )
curve_minkowski ( hossz / 4 , iterációk - 1 )
jobbra ( 90 )
curve_minkowski ( hossz / 4 , iterációk - 1 )
curve_minkowski ( hossz / 4 , iterációk - 1 )
balra ( 90 )
curve_minkowski ( hossz / 4 , iterációk - 1 )
balra ( 90 )
curve_minkowski , ( hossza / 4 ) iterációk - 1 )
jobb ( 90 )
curve_minkowski ( hossz / 4 , iterációk - 1 )
LENGTH = 100 # sorhossz
ITERÁCIÓ = 3 # iterációs szám
kezdés ( LENGTH * 2 )
curve_minkowski ( HOSSZ , ITERÁCIÓ )
exitonclick () # függvény, amely megakadályozza a program azonnali kilépését
Példa algoritmus Pythonban a Lindenmayer rendszer használatával
import teknős
teknős . hideturtle ()
teknős . nyomkövető ( 0 )
teknős . penup ()
teknős . setposition ( - 150 , 0 )
teknős . függőben ()
axióma , tempAx , logika , iterációk = 'F' , '' , { 'F' : 'F-F+F+FF-F-F+F' }, 3
i esetén tartományban ( iterációk ) : j esetén axiómában : tempAx + = logika [ j ] if j logikában else j axióma , tempAx = tempAx , ' '
k - ra axiómában : if k == '+' : teknős . balra ( 90 ) elif k == '-' : teknős . jobb ( 90 ) más : teknős . előre ( 5 )
teknős . frissítés ()
teknős . főhurok ()
Példa egy algoritmusra PHP-ben
<?php
$i = 2 ;
$image = imagecreatetruecolor ( 600 , 400 );
imagefilledrectangle ( $image , 0 , 0 , imagesx ( $image ) - 1 , imagesy ( $image ) - 1 ,
imagecolorresolve ( $image , 255 , 255 , 255 ));
$szín = képszínfeloldás ( $kép , 0 , 0 , 0 );
drawMinkowski ( $image , 0 , imagesy ( $image ) / 2 , imagesx ( $image ), imagesy ( $image ) / 2 , $i , $color );
/**
* Minkowski-görbét rajzol két pont közé.
* @return void
*/
function drawMinkowski ( $image , $xa , $ya , $xi , $yi , $i , $color ) {
if ( $i == 0 )
képsor ( $image , $xa , $ya , $xi , $yi , $szín );
else {
// 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 USD = 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 ( $kép , $xa , $ya , $xb , $yb , $i - 1 , $szín );
drawMinkowski ( $kép , $xb , $yb , $xc , $yc , $i - 1 , $szín );
drawMinkowski ( $kép , $xc , $yc , $xd , $yd , $i - 1 , $szín );
drawMinkowski ( $kép , $xd , $yd , $xe , $ye , $i - 1 , $szín );
drawMinkowski ( $kép , $xe , $ye , $xf , $yf , $i - 1 , $szín );
drawMinkowski ( $kép , $xf , $yf , $xg , $yg , $i - 1 , $szín );
drawMinkowski ( $kép , $xg , $yg , $xh , $yh , $i - 1 , $szín );
drawMinkowski ( $kép , $xh , $yh , $xi , $yi , $i - 1 , $szín );
}
}
header ( 'Tartalom típusa: image/png' );
imagepng ( $image );
imagedestroy ( $kép );
?>
Jegyzetek
- ↑ Slyusar, V. Fraktálantennák. Egy alapvetően új típusú "törött" antenna. 2. rész . Elektronika: tudomány, technológia, üzlet. - 2007. - No. 6. S. 85. (2007). Letöltve: 2020. május 6. Az eredetiből archiválva : 2018. április 3. (határozatlan)
- ↑ Vishnevsky V. M., Lyakhov A. I., Portnoy S. L., Shakhnovich I. V. Szélessávú vezeték nélküli hálózatok információtovábbításhoz. — M.: Technoszféra. - 2005.- C. 498-569
Irodalom
- Vishnevsky V. M., Lyakhov A. I., Portnoy S. L., Shakhnovich I. V. Szélessávú vezeték nélküli hálózatok információátvitelhez. — M.: Technoszféra. - 2005.- C. 498-569.
Linkek