Каннабола

Материал из свободной русской энциклопедии «Традиция»
Перейти к: навигация, поиск
Cannabola.jpg

Каннабола (cannabola) — интернет-мем[1], представляющий собой выведенное (по собственным данным) пользователями «Живого Журнала» семейство математических функций, описывающих поведение внешней границы листа конопли.

Самая простая каннабола аналитически записывается как \(R = (1 +{ \href {//traditio.wiki/%D0%A1%D0%B8%D0%BD%D1%83%D1%81}{ \texttip { \sin}{ Синус }}} t) (1 + 0.9 \cos 8t) (1 + 0.1 \cos 24t)\)[1]

Существуют и более сложные варианты каннаболы (см. первый рисунок).

И суперсложные варианты[2].


Каннабола и PHP[править]

Скрипт, реализующий построение каннаболы интерпретатором PHP:

<?php
$image = imagecreate(601, 601);
$white = imagecolorallocate($image, 255, 255, 255);
$gray = imagecolorallocate($image, 128, 128, 128);
$lightgray = imagecolorallocate($image, 216, 216, 216);
$black = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $white);
for ($i=0; $i<=600; $i+=10) {
    imageline($image, 0, $i, 600, $i, $lightgray);
    imageline($image, $i, 0, $i, 600, $lightgray);
}
imageline($image, 0, 600, 600, 600, $gray);
imageline($image, 0, 0, 0, 600, $gray);
for ($i=600,$j=0; $i>=0; $i-=10,$j+=10) {
    imageline($image, 0, $i, 3, $i, $gray); 
    if ($j>0 && $j<600) imagestring($image, 1, 6, $i-4, $j/10, $black);
    imageline($image, $i, 597, $i, 600, $gray); 
    if ($i>10 && $i<600) imagestringup($image, 1, $i-3, 592, ($i/10), $black);
}
function draw() {
    global $black, $image;
    for($z=200; $z>5; $z-=5) {
        $color = imagecolorallocate($image, 0, 255-$z/2-$z/3, 0);
        $oix = 0; $ox = 0;$oy = 0;
        for($t=0; $t<8400; $t++) {
            $ix = $oix+pi()/4196;
            $r = (1+sin($ix))*(1-0.9*abs(sin(4*$ix)))*(0.9+0.05*cos(200*$ix));
            $x = cos($ix)*$r*$z+300;
            $y = -sin($ix)*$r*$z+500;
            if($ox == 0 && $oy == 0) {
                $ox = $x;
                $oy = $y;
            }
            imageline($image, $ox, $oy, $x, $y, $color);
            $ox = $x;
            $oy = $y;
            $oix = $ix;
        }
    } 
}
draw();
header('Content-type: image/png');
imagepng($image);
?>

Примечания[править]

  1. а б Пост с каннаболой в «Живом Журнале»
  2. Пост с каннаболой на «Арбузном» форуме

Ссылки[править]