Archive for июня, 2009



26
июня

Фигуры Лиссажу, гильоши и вектора в Иллюстратор.

Я недавно заинтересовался всякими математическими художествами - фракталами, аттракторами и т.п. Разумеется, я не смог просто так пройти мимо и ударился в эксперименты. Практически готовый код для рисования фигур Лиссажу (фр. Lissajous), я нашел на сайте Е. Скляревского, там еще много всяких таких штук есть, ну вы понимаете, я все-таки больше художник, чем математик и, в конце концов, надо уметь пользоваться “богатствами интернета”.

Я привернул контролы ко всем возможным параметрам и получилась вот такая занятная игрушка - фигуры Лиссажу во всей своей красе, во всех, так сказать интимных подробностях.  Моя фигура Лиссажу эта одна, здоровенной длины, векторная кривая, отрисованная спомощью graphics.lineTo. Для начала, на сладкое,  поиграйтесь с этой штукой, а потом я расскажу кое-что еще интересное.

А теперь о главном.

Как известно, все эти художества используются для оформления разного рода ценных и не очень ценных бумаг. Эти сложные узоры полученные математическим способом называются гильошами или гильоширными сетками. Мне приходилось использовать такие штуки в своей работе. Проблема тут заключается в том, что обычно приходится использовать готовые решения,  а их еще найди. В замечательном Иллюстраторе, в рукопашную изобразить те же фигуры Лиссажу будет, мягко говоря, сложно. Конечно, есть какие-то плагины, и еще есть дорогая, прекрасная программа Цербер для рисования сложных гильоширных сеток, но вы же сами понимаете… все это добро теперь не так просто заполучить бедному дизайнеру… да в конце концов дело даже не в этом.

Как вы понимаете, настоящий воин не мог не заинтересоваться большой красной кнопкой на этом оружии… Так вот, посмотрел я на свою замечательную картинку и задался вопросом: а можно ли вот это художество заполучить в векторе, а еще лучше, чтоб прямо в Иллюстратор? Оказалось еще как можно. При том трюк просто феерически прост! Объясняю: чтобы получить содержимое флэш ролика в векторном виде, надо напечатать его в pdf! Все. То есть, щелкаете правой кнопкой по флэш ролику, выбираете из меню пункт - Печать… затем в качестве принтера Adobe pdf  (если его у вас нет то надо установить, по-моему это часть Adobe Acrobata) и печатаете в файл pdf. А pdf, как известно, прекрасно открывается в иллюстраторе! Ура. Замечательная, офигенная гильоширная сетка ваша! P.S. Мне нравятся развернутые комментарии, которые дают настоящие математики и программисты к алгоритмам и кодам, ну вот, например:

Фрагмент кода: r0 = 110 For v = 0 To 101 * pi Step 0.001

rr = r0 + 120 * Sin(v * 1) ^ 1 + 90 * Sin(v * 18.125) ^ 3

Дальше должно быть ясно...

Вам-то оно, конечно, ясно…  Из :7?%;”;”@ очевидно следует *&%$#@!

Хотя сам я когда начинаю писать о каком-нибудь алгоритме, тоже не очень-то углубляюсь в детали, а надо бы… P.P.S.

Вопрос к аудитории:
в исходном коде было написано:  “…Cos(2# * v))…” Меня интересует  2# это что такое? Что значит?

18
июня

Как я вытачивал свое портфолио.

portfolio
Дело было аж в 2007 году. Я решил сделать портфолио “не как у всех”, чтобы навигация была поинтереснее, ну вобщем хотелось чудес, особенно посмотрев на это и вот это и еще вот особенно это. Тогда я даже близко не представлял как это реализовать, но уж очень хотелось, чего-то необычного.

Я решил, что моя навигация не будет пришпилена к определенному месту, а кнопки будут живыми, будут свободно перемещаться по экрану, прилипая к курсору мыши. Это идею я и реализовал, при этом пришлось кнопки научить при столкновениях разбегаться в стороны. Понятно, что никакой навороченной физики я применять не стал т.к. просто не умел и сделал попроще - каждая кнопка проверяет не столкнулась ли она с кем-либо, если да, то она валит по диагонали в сторону, вторая в свою очередь тоже убегает. В деталях я уж и сам не помню, что там навертел. Вобщем умные получились кнопки. Я остался вполне доволен.

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

Сайт работает на xml, черпая всю информацию из подгружаемых файлов. Вес основного модуля 142 kb. Я терпеть не могу монструозные сооружения, загружаемые по полчаса, бездумно набитые под завязку фотографиями и музыкальными треками, ну не гуманно это! Поэтому только xml!

На примере этого проекта я разбирался с программированием на ActionScript. Тогда еще не было AS3, поэтому я просто тонул в густом месиве различных практик программирования на as. Слишком много было совершенно разных подходов, кто все в кадрах валит, кто отдельные пакеты пишет, с нуля было совершенно не понятно, как писать код правильно. В конце концов я слепил этот проект, как умел, прямо внутри одного fla файла, но опыт получил колоссальный.

Сейчас, в эпоху AS3  я стараюсь делать все как положено - код отдельно, символы отдельно, кругом классы, классы и классы… отделяю так сказать художественные байты от технических :). И это мне нравится куда больше рассовывания кода по кадрам.

10
июня

Производительность PixelBlender’а

Для меня оказалось сюрпризом, что эффект джина во флэш-плеере воспроизводится значительно медленнее, чем в самом PixelBlender. При этом, чем больше размер объекта к которому применяется шейдер, тем сильнее тормоза.

Я стал разбираться с этим вопросом и нарыл одну весьма интересную запись в блоге Kaourantin.net.

Цитирую:

You heard right, software run time. Pixel Bender kernels do not run using any GPU functionality whatsoever in Flash Player 10.

Да. Во флэш-плеере пикселблендер не использует GPU! Вот и весь сказ. Так что вся эта прекрасная скорость и гладкость наблюдаемая в самом PixelBlender пока что только там и остается. Очень это разочаровало меня если честно, за что боролись? Впрочем, ряд трюков все равно можно исполнить только средствами пиксел блендера - это оправдывает его существование.

Кстати, в статье еще много всякого вкусного о PixelBlender - рекомендую.

Celadon theme by the Themes Boutique