Векторная графика. Стоки
Ломаная линия имеет углы, хотя в некоторых программах и в некоторых опциях углы могут быть скруглены. Иногда используется и аналог ломаной линии - фигура, контур который состоит не из прямых линий, а из плавно изгибающихся кривых Безье.
Все указанные красоты, конечно хороши, однако для реализации их требуется дополнительное время. Например, кривая Безье чертится не как таковая, а как набор маленьких коротких отрезочков, поэтому особых выгод от использования кривых Безье нет. Несколько кривых Безье успешно могут быть заменены ломаной линией, содержащей вдвое или втрое большее количество точек. Посмотрите на иллюстрацию - овал лица, брови и нос прочерчены ломаными линиями, и разве эту ломаность вы как-нибудь замечаете?
С другой стороны, имея набор точек с их координатами, подготовленными для черчения Ломаной линии, мы можем использовать этот набор по-другому.
Например, трактовать эти точки, как точки, задающие последовательность кривых Безье. Или как точки, задающие положение глазного яблока, зрачка, блика и ресниц для упрощённого изображения глаз. И посмотрите, глаза эти смотрятся весьма привлекательно. Всего одна Ломаная линия понадобилась для их изображения.
Про то, как именно из Ломаной линии делаются глаза, я уже рассказывал в своей статье - http://proza.ru/2022/10/27/1379
Точно таким же манером, трактуя точки как точки Безье, можно создать изображение рта с присущей ему мимикой - http://proza.ru/2022/12/12/1570 с артикуляцией губ и всем прочим.
Делаются такие изображения с помощью специальных программ, «стоков».
Каждый сток имеет свою специализацию – обратишься к одному, он сделает глаза, во всевозможных вариантах – и открытые, и закрытые, и подмигивающие. Обратишься к другому – он сделает рот. К третьему – штаны или вязаную кофту. К четвёртому – еловые веточки или волосы, заплетённые косичками. К пятому – поднимающиеся в воде пузырьки, или падающий снег.
Вариантов может быть много. В моей программе – до 81. Конкретно, сток задаётся его номером, а этот номер указывается на месте типа заливки.
Например, если указать тип заливки цифрой 9, то получим разомкнутые ломаные линии, такие, какими они показаны на иллюстрации справа. А поставим вместо цифры 9 число 249 – создадим изображение, показанное левее. Мало того, разомкнув абрисы, содержащие точки, и передвигая абрисы, как единое целое вниз, мы не получим равномерного движения этих точек – крупные точки будут падать быстрее и будут испытывать в своём падении небольшие хаотичные движения то вправо, то влево. Создавая естественную иллюзию идущего дождя или падающего снега.
СТОК ЁЛОЧКА
Итак, чтобы организовать тот или иной сток, нужно написать подпрограмму, его реализующую, а на месте, обозначающем тип заливки, указать номер подпрограммы.
Рассмотрим сток № 229 – «ёлочка».
1> 9 2470 0 2520 1 3 5 7 229 17184 608 3 1
так выглядит строка, описывающая Ломаную линию.
1,3,5,7 – адреса, по которым находятся точки четырёх абрисов - четырёх веточек. Следующее число – тип заливки. Если там стоит цифра 9, то точки каждого абриса будут попросту соединены между собой, вот так -------.
А если укажем 229, то получим такое изображение <<<<<<<.
Как же такое изображение еловой веточки делается?
Как я уже говорил, в обычной Ломаной точки соединяются между собой. Например, первая точка соединяется со второй. Координаты начальной точки изменяются на величины dX, dY и координаты конечной точки получаются по формулам Xк=X1+dX Yк=Y1+dY. Именно эта линия и рисуется. Она начинается в точке 1 и оканчивается в точке «к», совпадающей с точкой «2».
Но попробуем вычислить координаты конечной точки по другим формулам:
Xк=X1+dY Yк=Y1+dX то есть поменяем dX, dY местами. Что за изображение мы тогда получим? Если веточка состояла из горизонтальных чёрточек -------, то теперь на её месте получим вертикальные чёрточки |||||||, направленные вниз. Если же ещё, перед dX, dY поставить знак минус, то получим такие же вертикальные чёрточки, направленные вверх.
Нетрудно сообразить, что если в этих же формулах заменить X1,Y1 на X2,Y2 то мы и получим то самое изображение еловой веточки с иглами.
Прижав иглы к средней линии и увеличив их толщину можно вместо еловых веточек изобразить косички, а изогнув косички, сделать из них прикольную причёску.
ШТАНЫ И ВЯЗАНАЯ КОФТОЧКА
Сток, изображающий штаны, работает аналогично – он рисует крупные чёрточки, окрашенные в активный цвет с одной стороны, и имеющие цвет фона, с другой. Сделав пару таких штанов можно изобразить вязаную кофточку. А, соединив чёрточки по краям, можно убрать следы вязки.
Мы видим, что возможности стоков разнообразны. Делая с их помощью различные изображения и управляя этими изображениями, мы можем существенно облегчить свою работу по созданию векторной анимации.
Разумеется, можно было сделать и более сложные стоки, с более многочисленными функциями, но это не входило в мои планы. Я хотел всего лишь опробовать этот способ создания изображений в комбинации с такой традиционной фигурой векторной графики, какой является Ломаная линия.
__________
22.01.2022
Свидетельство о публикации №223012400145
Я работаю с векторной графикой каждый день, но в программе Иллюстратор.
Я графический дизайнер-верстальщик, и работаю с векторами много - все контуры для вырубки делаю, и тиснения (фольгой), файлы для изготовления штампов (печатей) и тд, логотипы отрисовываю.
Всего доброго Вам!
С уважением,
Анна Мельниченко 2 24.01.2023 05:52 Заявить о нарушении
Программа сделана в среде Визуал Бейсик 6 и работает совместно с Виндос.
Скачать программу можно тут - http://disk.yandex.ru/d/pT6LoBWUGOBfiw в ней есть раздел Help, в котором всё подробно объясняется.
Есть и другая программа http://proza.ru/2020/11/17/742 но она больше нацелена на рисование. В этой программе тоже есть векторная графика, только она имеет несколько другой вид.
Обе программы позволяют делать анимацию, на это же нацелена и векторная графика, имеющаяся в них.
Дмитрий Маштаков 24.01.2023 06:37 Заявить о нарушении
Здорово, быть программистом!
Спасибо за ссылки, обязательно посмотрю!
Всего доброго Вам, хорошего дня!
С уважением,
Анна Мельниченко 2 24.01.2023 07:45 Заявить о нарушении