Порисовал немного на теге CANVAS, ничего интересного

Фрактал (3.10КиБ)

Попробовал порисовать на теге CANVAS, хотелось хоть что-то попробовать нарисовать, а то совсем забывать начинаю как это делается. Нарисовал очень простой лист дерева, без контура.

<canvas width="500" height="240"></canvas>
<script type="text/javascript">
(function (c) {
    var img = c.createImageData(500, 240);

    var putPixel = function (x, y, c) {
        var index = (x + y * 500) << 2;

        for (var i = 0; i<4; i++) {
            img.data[index+i] = c[i];
        }
    };

    var x = 0, y = 0, color, leaf, idx,
    k = [
          [ 0.00, 0.00, 0.00, 0.16, 0.00, 0.00 ],
          [ 0.85, 0.04,-0.04, 0.85, 0.00, 1.60 ],    
          [ 0.05,-0.26, 0.23, 0.22, 0.00, 1.60 ],
          [-0.15, 0.30, 0.26, 0.24, 0.00, 0.44 ],
    ];

    for (var i = 0; i<200000; i++) {
        leaf = Math.random();

        if (leaf <= 0.010) leaf = 0; else
        if (leaf <= 0.860) leaf = 1; else
        if (leaf <= 0.930) leaf = 2; else    
        leaf = 3;

        x = x * k[leaf][0] + y * k[leaf][1] + k[leaf][4];    
        y = y * k[leaf][2] + y * k[leaf][3] + k[leaf][5];    

        putPixel(parseInt(y * 55), 120 - parseInt(x * 40), [10, 100, 20, 255]);
    }
    
    c.putImageData(img, 0, 0);
})(document.getElementsByTagName('canvas')[0].getContext('2d'));
</script>
Поделиться
Отправить
11 комментариев
CTAPbIu_MABP 2010

о новый диз, прикольно :)
а перо apache нарисуешь?

Евгений Степанищев (bolknote.ru) 2010

Комментарий для CTAPbIu_MABP:

Я бы хотел что-то более красивое попробовать. Какой-нибудь красивый фрактал в хорошем качестве.

CTAPbIu_MABP 2010

на js1k.com много вариантов.

слу, у меня такой вопрос, а зачем тебе parseInt ?

Евгений Степанищев (bolknote.ru) 2010

Комментарий для CTAPbIu_MABP:

Да просто один из способов приведения к целому.

CTAPbIu_MABP 2010

битовые операции работают быстрее, попробуй заменить на ~~

larionov 2010

Комментарий для CTAPbIu_MABP:

в  http://js1k.com/2010-xmas/demo/895 нашёл:

// I later discovered that |0 is better than ~~ because it has lower precedence.

CTAPbIu_MABP 2010
Евгений Степанищев (bolknote.ru) 2010

Комментарий для CTAPbIu_MABP:

Спасибо! Но и так, вроде, не тормозит :)

maxim-zotov 2010

Комментарий для larionov:

Из того же конкурса красивая елочка:
http://js1k.com/2010-xmas/demo/856
Firefox это ввергло в кому, пришлось убивать, Opera со скрипом кулера на проце, но таки показала красоту :)

Евгений Степанищев (bolknote.ru) 2010

Комментарий для maxim-zotov:

Я видел, круто! Её на «Хабре» показывали. К сожалению, вся эта зрелищная математика делается куда проще, чем самая слабая игрушка :(

Популярное