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

boldbrush

А поскольку - время настало...

Вот она рисовалка, отчасти соотвествующая, пускай не всем но части деклараций о красоте и легкости ее достижения: http://www.nemehanika.ru/cg/pde/i%20painter/ - на правой кнопке мыши найдете все доступные опции, такие как цвет, тип кисти, прозрачность, режимы стирания и т.д. Исходный код найдется там же... А полное собрание, как обычно, на: http://nemehanika.ru/cg/

handmade визуализация

Понедельник, 10 мая 2010 г.
Рубрика: Натурализация
Подписаться на комментарии по RSS

Слушать "живой" симфонический концерт и рисовать в блокноте, визуализируя услышанные звуки - это интересно. 

Увертюра к опере "Оберон" / Вебер

Далее...

Coding Gene... - ration!

Понедельник, 26 апреля 2010 г.
Рубрика: Компутериум -> Изокод -> Популярно
Подписаться на комментарии по RSS
открываем новый проект: форум по программированию пикселей на нестандартное поведение - образовательный ресурс для подрастающих программистов красоты - Coding Gene

Пока в тестовом режиме, но там уже есть кое-что интересненькое: например C++ версия программы Array из прошлого урока по Processing-у. А что получается, если программу из Java переделать на C++? Получается красота в полный экран... и с такой производительностью, что можно еще в три раза навернуть, а современный процессор - даже и не поперхнется... чем и займемся - вскоре.

А пока, поставьте себе Visual C++ Express Edition разверните архив Array в корень диска D:, должно получится D:\p_Cpp. Запустите файл D:\p_Cpp\Projects\CG_Array\Array.vcproj, позвольте запустившейся Visual Studio преобразовать проект (отказавшись от бэкапа). В левой панели дерева проекта, разверните вкладку Source Files и кликнете CG_Array.cpp, смотрите, читайте, компилируйте, запускайте, экспериментируйте. В ближайшем будущем, подробно обо всем - на nemehanika.ru/cg.

Массив псевдо-пикселей

Вторник, 20 апреля 2010 г.
Рубрика: Изокод
Подписаться на комментарии по RSS
Processing... Что? Это пароль! Если это слово вам - не известно, начините с первого занятия по увлекательному программированию, а всего их было раз, два, три... Вернулись? Не ходили? Едем дальше... Возьмем код здесь.
Вставили, запустили? Повозите мышку, жмите стрелки Вверх, Вниз и Enter:

Так вот... Помнится были обещаны массивы, и это еще до того, как рассказать о переменных... С другой стороны, если изучать сразу сложное (ну... не очень...), может быть не придется учить простое? Поэтому начнем сразу с массивов, минуя одиночные переменные. В отличие от них - одномерный массив похож на поезд в котором - n вагонов: переменных, а двумерный - на одноэтажный дом в котором n * m квартир. Так ведь есть еще и трехмерные массивы... - настоящие небоскребы: n * m квартир * z - этажей. На что похожи четырехмерные массивы - знают небоскребы и космонавты. Это как n * m * z и * f - параллельных вселенных в каждой из которых на одном и том же месте стоит не один и тот же n * m * z небоскреб. Вот и весь смысл массивов - упорядоченное общежитие однотипных переменных. Вот смотрите вы на экран..., а в нем X * Y - пикселей, а в каждом пикселе по три цветовых составляющих - |||. Вот жмете вы по кнопкам, а...

В Processing-е массив, к примеру - из целочисленных переменных, объявляется так: int[][] arr;

Конкретный размер придается ему методом создания: arr = new int[25][25];

Если мы хотим "заселить" переменную в "квартиру" 17,8 - пишем: arr[17][8] = 314;

Если хотим узнать-скопировать, что у нас в 4,21 - пишем: int a = arr[4][21];

А что такое int a? - если не объявление целочисленной переменной по имени a.

Что такое обработка массивов? А зачем? А вот, например, за этим: изображение у нас умеет ездить вверх и вниз благодаря этим двум функциям:

Они обе - есть пересыпание строк нашего двумерного массива. А если пересыпать столбцы? - Изображение будет ездить влево и вправо..., для чего - можно написать еще две такие функции с соответствующими названиями и "подключить" их в функции vFilter(), а так же добавить парочку новых условий в функции keyPressed().

Что такое условия? Узнаем мимоходом в следующий раз. И ни в коем случае - не пытайтесь догадаться сами... И тем-более: не жмите кнопку Reference в меню Help - так вы вообще рискуете во всем разобраться...

Оттиск 2

Вторник, 13 апреля 2010 г.
Рубрика: Абстракториум -> Сюрреализация -> Натурализация
Подписаться на комментарии по RSS

И вот что интересно... монотипия позволяет проявить не только картинку на листе бумаги, но и немалую часть спектра творческих качеств.

можно испытать два противоположных подхода.

1. я программист = я бог: попробовать добиться запланированного результата, оттестировав разные сорта бумаги, количество краски, угол и скорость отрыва листа, влажность и площадь придавливания. Главное -  процесс отладки проводить без посторонних, все удачные баги тут же объявить фичами и сопровождать все четкими комментариями, чтобы запрограммировать зрителей на "правильное" восприятие.

2. я художник = интуиция+удача. ни о чем не думать, войти в состояние ребенка, ляпать, брызгать, красить, ни в коем случае не позволять себе выводить закономерности, все время пробовать новые подходы. Работам названия не давать, пусть все всё додумают сами.

Далее...

Сделать красивый скринсейвер самому - очень просто. Сделать десять скринсейверов еще красивее того первого - тоже очень просто. Одиннадцать - чуть сложнее. 74 - сдадутся без боя. 101-й обязательно будет лучшим... Программировать - не придется. Делать нечто странное - возможно, но теперь много проще: потому, что мышкой - это удобней чем с клавиатуры:

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

nm_engine_Harizma randomSEED 10554 HIDE Qo Qo Qo Qo Qo Qo Qo Qo Qo mn 7 Mn G G G G G G F B B cl 6 cd 13 CL 19 CD 15 mn 10 Mn mn 3 Mn mn 6 Mn Tb cd 18 CD 16 cr 10 CR 11 cu 2 CU 4 K w 9 W 11 mn 5 Mn cl 12 CL 13 cu 6 CU 8 K K SHOW

Вставьте его в буфер обмена (выделить, правый клик, выбрать - Копировать), при запущенной неМеханике (живет в системном трее, после запуска) и увидите - что получиться. Странно, правда? А потом:

Чтобы поселить его на компьютере как обычный скринсейвер... Такая вот она... н-е-М-е-х-а-н-и-к-а!

Оттиск

Суббота, 13 февраля 2010 г.
Рубрика: Натурализация -> Популярно
Подписаться на комментарии по RSS

От попутчика монотипии требуется вдумчивость/легкость/бесшабашность на процессе размазывания краски по гладкой поверхности(стекло, второй лист, металл), интуиция/точный расчет/полная случайность при определении времени, на которое прижимается лист бумаги и экспрессивность при движении подъема листа. Почему попутчика? попробуйте и узнаете.

*Слишком сильно удивляет непредсказуемостью результат, чтобы считать себя создателем.

Продолжение следует: про случайные неслучайности и вмешивающуюся реальность.