Понедельник, 24 сентября 2012 г. Просмотров: 233
Рисовалка номер Раз
Photoshop, CorelDraw, Painter, Illustrator, SamNapisal... Что? О последнем можно подробнее? - Конечно. Хорошо, что вы спросили. Если бы не ваша живая реакция, пришлось бы прибегнуть к плану Аа. Ну раз не пришлось, то вот:
Добываем себе Processing, для этого: заходим на processing.org, ощупываем достопримечательности, находим и качаем его.
Установка не требуется, распаковываем в любое удобное место. Запускаем. Смотрим: Да это же среда программирования!
хорошо, что не четверг. Чт-о-о-о? Вы не программист? Отлично! Мы тут не программировать собрались, мы тут - баловаться развлекаемся.
Тот код, что серый за двумя слешами (неактивен пока...) - для баловаться, остальной - чтоб развлекаться. Комментарии - чтобы понимать... Разумно меняем все что угодно. Жмем запуск. Если ошибки - откатываемся, или даже читаем их в нижнем окошке и понимаем - чего надо? А! Синтаксис... Если же запускается - видим окно, в нем рисуем мышкой:
Радуемся. Закрываем. Снова меняем. Опять запускаем. Так мы познаем прелесть изучения программирования на основе игры с примерами кода. Предка всех программистов никто не учил разведению костра - он сам догадался, на случайном примере, затем запрограммировал сородичей... А у нас, кроме костра, еще и хелп есть. И вопросы любые задать в комментариях - не постесняемся.
Обсудить
Понедельник, 24 сентября 2012 г. Просмотров: 217
Циклопы любят все повторять по много раз...
Кто пропустил первое занятие по программированию? - Пожалуйте сюда. Там вы узнаете, что такое Processing и с чем его хотят. Узнали? Едем дальше...
Продолжаем играючи изучать программирование красоты. Сегодня у нас в гостях цикл -оп. Выглядит не страшно, циклится не вечно - столько сколько попросим, повторяет все, что укажем. Немногословен от природы, поэтому придется мне за него выступить.
Так уж получается, что иногда за один раз (один кадр нашей анимации) надо нарисовать несколько штучек, а не одну. Тогда нужен цикл: возможность объяснить компьютеру сколько раз нам надо выполнить одно и тоже действие или компанию действий.
С цветом экспериментировать будете? А с числами? Все числа типа 0.001, 1.025... - чистые подгонки, чтобы что-то было не слишком крупное, другое не слишком мелкое, третье вращалось быстрее и так далее... - находятся экспериментальным путем. Поменяйте их, чтобы увидеть - что имеется в виду. А fill(0,0,0,5) для этого напишите как fill(0,0,0) - пропадет эффект затухания, формы станут виднее. Погадайте о смысле последней цифры в fill(0,0,0,5). Гадать конечно лучше - экспериментально, максимальное значение - 255.
Вот и все. Другие разновидности циклов встретим по мере дальнейшего путешествия, во время которого - не будем оскорблять совершенство своей природы слишком упорядоченным изложением...
Обсудить
Понедельник, 24 сентября 2012 г. Просмотров: 179
Фундамент и Инерция
Если слово Processing вам ни о чем не говорит, значит вы достигли наконец второго уровня неуловимости, а именно: пропустили первое и второе занятия по программированию красоты и гармонии. Вернулись? Продолжаем...
Сегодня похрустим двумя очень разными, но по-своему - приятными штучками. Первая - по праву считается фундаментом всего программирования, другая же - была здесь всегда. Так вот...
Первый доисторический архитектор программирования обратил внимание на то, что огромное количество похожего кода приходится писать вновь и вновь. И даже возможность просто копировать - его не радовала. Потому, что после какой-нибудь непродолжительной отлучки в соседнюю деревню - программа ни спереди, ни сзади не хотела выглядеть родной и понятной. А нервы уже в то время - не были железными... И тогда до-архитектор придумал функцию!
Функция подобна стиральной машинке, утюгу или миксеру. Каждая конкретная функция в "доме" программы - одна, а использовать ее можно - многократно. Программы с программистами после этого сразу сильно похорошели... А вождь племени подумал тогда о том, что неплохо бы ввести налог на удовольствия получаемые от программирования... и тут же был свергнут шестью различными способами в цикле от 0 до 15-ти.
Теперь смотрим код. Заметьте, выражения типа x += vx являются сокращенной записью, в данном случае от выражения x = x + vx. А, например, x-- соответствует x = x - 1. Но это так... - удобные мелочи. Дальше - больше.
В двух местах мы наблюдаем вызов одной и той же функции - drawRandomSpot2(...). Ей с собой выдаются параметры: координаты, радиус и цвет. А уж она там сама знает - что рисовать. Удобно? Красиво? Вот и у всех программистов мира - тоже так... Теперь промотаем вниз и обнаружим сами функции:
Да, да, да, их то тут три, а не одна... А зачем? Если у всех входные параметры - одинаковые, а внутренности ( реализации)- разные. Вот и догадайтесь с одной подсказкой: - Для развлечения, конечно! Ну ладно, еще подсказка (подозреваю - опоздавшая)...
Результатом применения функций является не только выразительная читаемость - понятность кода и не только уменьшение объема его в сотни раз..., а так же - необычайная гибкость.
Ведь тогда, разные варианты исполнения того или иного действия - пишутся как несколько функций с разной реализацией. Потом, чтобы сменить одно на другое - достаточно переименовать вызов функции, а не заменять одни куски кода другими кусками, попутно исправляя названия переменных (стал бы до-архитектор по пустякам нервничать?).
Чуть не забыл! Вторая штучка - это инерция.
Ее присутствие оживляет нашу программу не совсем прямым управлением процессом рисования. Как это достигнуто? При помощи простейшей математики и переменной - cInertion: это такой обратный счетчик, который затухает от максимального значения - maxInertion до нуля. А значит процесс рисования не завершается сразу как мы отпускаем (куда?) мышь, а продолжается еще некоторое время: еще несколько кадров.
А вот то, что в тексте программы фигурирует некто по имени массив, мы пока - благоразумно не заметим. Надо же что-то оставить и на завтра...
Обсудить
Понедельник, 24 сентября 2012 г. Просмотров: 199
Массив псевдо-пикселей
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 - так вы вообще рискуете во всем разобраться...
Обсудить
Вторник, 25 сентября 2012 г. Просмотров: 395
Фестиваль "Цифровое будущее".
Школьникам: с 1 по 12 октября 2012 года каждый из Вас может принять участие в фестивале "Цифровое будущее". В программе интерактивные лекции, мастер-классы, IT-конкурсы, розыгрыши призов от компаний ABBYY, Corel, D-Link, GIGABYTE, Genius, Gyroscope Group, WACOM, АйТи Агентства ОС3, Мультимедиа Клуба, МосИгры, ЦКО «Специалист», Детской школы визуальных искусств, журнала "Мир ПК". Вход на все мероприятия абсолютно бесплатный! Подведение итогов 15 октября в ТК "Горбушкин двор". Сайт фестиваля - www.10-days.ru
Наш сайт на фестивале представит обзорную лекцию по Processing (1-го октября), и конкурс по программированию (15-гооктября, в ТЦ Горбушкин двор)
Обсудить
Основы Processing
Processing - это гибкий программный скетчбук и язык для изучения программирования в контексте визуальных искусств. Он создан для того, чтобы помочь новичкам освоить основы программирования через создание интерактивной графики, анимации и других визуальных эффектов.
Работа с цветом
Processing предоставляет мощные инструменты для работы с цветом. Вы можете использовать различные цветовые модели, такие как RGB, HSB и другие, для создания потрясающих визуальных эффектов. Экспериментируйте с различными цветовыми палитрами и создавайте свои собственные цветовые схемы.
Создание анимации
Processing позволяет создавать сложную анимацию с помощью функций, циклов и других программных конструкций. Вы можете анимировать движение объектов, изменять их форму, цвет и другие свойства, создавая динамические и интерактивные визуализации.
Интерактивность
Processing позволяет создавать интерактивные программы, которые реагируют на действия пользователя, такие как нажатия клавиш, движения мыши и другие события. Вы можете использовать эти возможности для создания игр, симуляций и других интерактивных приложений.
Библиотеки и расширения
Processing имеет богатую экосистему библиотек и расширений, которые предоставляют дополнительные функции и возможности. Вы можете использовать эти библиотеки для работы со звуком, видео, сетью и другими ресурсами.