Добавить в корзинуПозвонить
Найти в Дзене
Дмитрий Маштаков

Мой редактор для рисования. Кисти

Существует множество редакторов для рисования, компьютерной графики и анимации. Но я использую свою собственную программу. Программа предназначена для художественного рисования, имеет уникальные кисти, возможности анимации и хорошую векторную графику. Размер программы всего 1.35 Мбайт, работает она в системе Виндос. Бесплатна и установки не требует. Просто скачайте http://disk.yandex.ru/d/suZ-qnFu4YOdYw и пользуйтесь. Программа создавалась с исследовательскими целями – мне хотелось знать, чего можно достичь в компьютерном рисовании, как наилучшим образом строить для этого алгоритмы, насколько программа получится быстродействующей, а результаты – заслуживающими внимания. Думаю, что это будет интересно и Вам, уважаемые читатели. Интерфейс редактора DM_Paint оригинален – две панели с кнопками управления плавают над полем рисования. Поле перемещается с помощью кнопок со стрелочками в нижней части левой панели и может быть необъятных размеров. Те же стрелочки, кликами правой кнопки мыши,

Вид окна редактора
Вид окна редактора

Существует множество редакторов для рисования, компьютерной графики и анимации. Но я использую свою собственную программу.

Программа предназначена для художественного рисования, имеет уникальные кисти, возможности анимации и хорошую векторную графику. Размер программы всего 1.35 Мбайт, работает она в системе Виндос. Бесплатна и установки не требует. Просто скачайте http://disk.yandex.ru/d/suZ-qnFu4YOdYw и пользуйтесь.

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

Интерфейс редактора DM_Paint оригинален – две панели с кнопками управления плавают над полем рисования. Поле перемещается с помощью кнопок со стрелочками в нижней части левой панели и может быть необъятных размеров. Те же стрелочки, кликами правой кнопки мыши, изменяют размер поля рисования.

Что касается используемых в рисовании кистей, то панели для их выбора выдвигаются вправо из края основной панели.

Так выбирается кисть для рисования
Так выбирается кисть для рисования

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

Примеры рисования кистями программы DM_Paint
Примеры рисования кистями программы DM_Paint

Между тем, все кисти используют общую основу – это составленный из пикселей круг. Он действительно напоминает собой кисть, каждая щетинка которой рисует отдельно.

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

Суть проблемы состоит в следующем. Опустив стилус на планшет и двигая им мы инициируем так называемые «события движения мыши». На языке программистов такое событие называется

Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Здесь существенно то, что X и Y это координаты новой точки рисунка, нового пикселя, на который переместился наш стилус. И нам остаётся только написать подпрограмму, которая будет иметь это название, и которая будет это событие обрабатывать. А как его нужно обрабатывать?

так обрабатывается движение мыши
так обрабатывается движение мыши

Круг из пикселей рисуется по расширяющейся спирали, против часовой стрелки, и так, чтобы пиксели не повторялись, но плотно примыкали друг к другу. Радиус этого круга соответствует цифре на кнопке «размер точки». Если круг делается полупрозрачным, то перед каждым окрашиванием пикселя с рисунка читается его прежний цвет, который затем смешивается с цветом, установленном на кнопке «активного цвета». Координаты пикселей круга относительно его центра, соответствующие спиральной последовательности, вычисляются заранее с тем, чтобы не замедлять процесс рисования излишними математическими действиями. Перейдём теперь собственно к описанию работы кистей программы.

так работает кисть с мягкими краями
так работает кисть с мягкими краями

Кисть без номера это самая обычная кисть. Она имеет мягкие края. Её плотность уменьшается, если с помощью кнопки «разрежение следа» сделать события перемещения мыши более редкими – перемещения мыши просто периодически пропускаются. Можно также проредить пиксельный круг или расширить пятно вдвое – тогда пиксели будут закрашиваться неплотно. Можно, наконец, просто регулировать «Плотность кисти» соответствующей кнопкой. Мягкие края кисти делаются в момент опускания стилуса на планшет – в зависимости от радиуса пятна создаётся таблица, регулирующая прозрачность пятна на его периферии.

Рыбки. Работа кистью №1 в режиме акварели
Рыбки. Работа кистью №1 в режиме акварели

Кисть №1 в режиме гуаши имеет регулируемую плотность и жесткие края. Акварельный режим для этой кисти создаётся интересным приёмом – вслед за окрашиванием очередного пикселя пиксельного круга, в тот же цвет окрашиваются и предыдущие два пикселя. Этот нехитрый приём создаёт акварель, реально перетекающую по пикселям рисунка. Эта акварель не только полупрозрачна, но она ещё и размывает те краски, которые были положены на холст ранее. Разрежение пятна вносят в акварель элементы зернистости. Видео с рисованием рыбки можно посмотреть тут - http://youtu.be/MgeQ2-KZczc

следы затекающей акварели от кисти №2
следы затекающей акварели от кисти №2

Кисть №2 имеет непрозрачный керн и полупрозрачный ореол, ширина которого регулируется кнопкой «Градиент» на левой панели. Затекающие свойства акварели создаются окрашиванием дополнительного пикселя, находящегося на рубеже голубого квадрата, показанного на рисунке. Где именно будет находиться дополнительный пиксель, определяется установкой «вектора затекания», и для этой установки используется специальная выдвижная панель.

направление затекания регулируется кликами по панели
направление затекания регулируется кликами по панели

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

Таким образом, играя со стеканием, можно получать весьма разнообразные структуры акварельного следа кисти.

фактурные следы кисти с окантовкой по правому краю мазка
фактурные следы кисти с окантовкой по правому краю мазка

Непрозрачная кисть №3, имея окантовку, которая может быть смещена на правый край мазка, позволяет имитировать масляную живопись, сделанную фактурными мазками. Тон окантовки определяется цифрой на кнопке «Градиент» - при цифре меньше 3-х окантовка более светлая, а при больших значениях градиента она получается существенно темнее активного цвета.

рисование кистью Змейка
рисование кистью Змейка

Помимо футуристических змей и текущей акварели, кисть «Змейка» в режиме гуаши представляет очень удобное средство как для прорисовки тонких линий, так и для заполнения площадей. Видео о рисовании этой кистью см. здесь - http://youtu.be/6KMZwV8zN1o

кисть для рисования волос
кисть для рисования волос

Кисть, рисующая паттернами, задумывалась как кисть для рисования волос. Принцип рисования прост – паттерн, образец, составленный из редких точек, попросту волочится по поверхности рисунка и оставляет следы. В паттерне с постепенным включением прядей имеются точки разного цвета и, в связи с этим различием, они сначала включаются в процесс, а затем выключаются из него. Скорость включения/выключения регулируется кнопкой «Градиент». Включённый вектор стекания переключает рисование точками на рисование линиями. Таким способом можно создавать очень эффектные ворсистые структуры. В программе есть возможность создавать свои собственные паттерны, хранить их в отдельном файле и использовать в дальнейшем.

работа мастихином
работа мастихином

Мастихин рисует линией из точек, разворачивая её перпендикулярно к направлению движения стилуса. Ширина линии задаётся цифрой на кнопке «Градиент». Начиная своё движение, мастихин зацепляет цвет по линии начала и затем всё более подмешивает активный цвет. Скорость перехода к активному цвету регулируется кнопкой «Плотность». Функционирование виртуального мастихина вполне соответствует мастихину реальному – им так же удобно смешивать краски между собой, как и накладывать на холст мазки. Видео о работе мастихином смотрим тут - http://youtu.be/XTpUwGUNZb8

работа кистью заливки
работа кистью заливки

Наконец, имеется особая кисть «Fill», организующая заполнение (заливку) активным цветом только тех пикселей, которые имеют тот же цвет, что и пиксель, с которого началось движение стилуса. Кисть включается кликом правой кнопки мыши по кнопке «Fill», и не требует перехода в режим рисования кистями.

Когда я задумал сделать свой собственный редактор, то не ожидал, что по некоторым параметрам он превзойдёт программы профессиональные. Тем более такие, как CorelDRAW, Крита или Фотошоп. Но это случилось. Маленькая программа DM_Paint ( размером всего 1.35 Мбайт) оказалась весьма удобной, многофункциональной, а по части выбора цвета и оригинальности кистей - не имеющей аналогов. Проект развивался на протяжении полутора лет, и в настоящее время он полностью завершён. Буду признателен, если Вы попробуете работать в этом редакторе и пришлете мне свои замечания. Благодарю за внимание.

В настоящее время имеется новая программа, с такими же кистями, но более совершенными - https://proza.ru/2023/03/20/1179 называется она "Стереометрия и анимация" и скачать её можно здесь - https://disk.yandex.ru/d/pT6LoBWUGOBfiw

В тексте использованы материалы статей, опубликованных мной на страничке http://proza.ru/avtor/dimamasht сайта проза.ру.