Копирование круговых областей

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

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

   КАК ОРГАНИЗОВАТЬ КОПИРОВАНИЕ КРУГОВОЙ ОБЛАСТИ

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

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

   Практически копирование происходит так. Когда стилус касается поверхности планшета, то на рисунке появляется окружность, показывающая область копирования. Если эта область не устраивает нас по своему размеру, то мы изменяем радиус круга и вновь касаемся стилусом планшета.
   Если всё в порядке, то ведём стилусом в сторону (окружность при этом следует вместе с ним) и в нужной точке отрываем стилус от планшета. Скопированное изображение появляется вокруг этой точки.
   Это, так сказать, обычное копирование, ничем не примечательное, за исключением того, что копируемая область имеет форму круга.
   Более интересным является следующий режим копирования.

      КОПИРОВАНИЕ  с  СОХРАНЕНИЕМ НЕПРЕРЫВНОСТИ ЛИНИЙ РИСУНКА

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

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

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

    Мультик с летающей птичкой, сделанный с использованием указанных принципов копирования, можно посмотреть тут - http://yadi.sk/i/jkoy6UyCOiDaAg

  В мультфильме кроме копирования кругами использован перенос с зеркальным отражением, копирование на прозрачном фоне, копирование с поворотом изображения на заданный угол, сдвиг изображения в области анимации, копирование анимации в буфере, наложение анимации на задний план и изменение чередования кадров на обратное. Все эти технические приёмы позволили ограничиться всего 23-мя различными кадрами с фигурой птички, которые, чередуясь между собой, использованы в мультфильме в разных комбинациях.   
___________
20.10.2019

вот ещё две пробы в которых движение сделано этим методом -
http://yadi.sk/i/MVrwDezYqh9bVg  http://yadi.sk/i/E5ss7oTjyOsENA
Мультик "Шорох снега" - http://youtu.be/2Kptm9z2N2M   тоже сделан этим способом.


Рецензии
Скачала MA_Paint.exe , несмотря на предупреждения о возможном вреде.))
Учусь. Спасибо!

Надежда Бабайлова   06.11.2019 13:37     Заявить о нарушении
С удовольствием. Чем могу. Я процесс изготовления видео сейчас осваиваю.
Потому что мало получить анимацию на экране компьютера, нужно ещё видео научиться редактировать. Сейчас скачал редактор Vidio Pad и пробую его использовать.
А какого рода анимацию Вы хотите делать?
Хотите, советами помогу, хотите, сам попробую. Мне это интересно.

Дмитрий Маштаков   05.11.2019 09:55   Заявить о нарушении
А вы пришлите мне свою работу какую-нибудь. Я посмотрю возможности. Есть у Вас канал ю-туб?

Надежда Бабайлова   05.11.2019 10:11   Заявить о нарушении
Да, канал есть - http://www.youtube.com/channel/UCxmwXkCiEIs7Stw7tlADyYw
но во-первых, я редактирование видео только осваиваю, программу для этого только вчера скачал, а во-вторых, я не рисую. Вернее, рисую, но плохо. Хорошо рисует у меня внучка. А я за техническую сторону отвечаю.
Ранние клипы на моём канале построены на слайдах, никакой анимации в них нет. А более поздние уже сделаны из окна редактора для рисования, и они используют возможности анимации. А последние возможности, типа создания презентации, я практически ещё не использовал. Только сейчас новый клип с использованием этой опции готовлю.
Но Вы скажите, что нужно, а я попробую Вам помочь.

Дмитрий Маштаков   05.11.2019 23:15   Заявить о нарушении
Можете проанимировать модель атома по текстам? А внучка поможет.

Надежда Бабайлова   06.11.2019 02:01   Заявить о нарушении
Внучка занятой человек, а у меня здоровье не очень. Одно дело сделать короткий ролик, или помочь советом, другое дело - сделать видео с подробными объяснениями. Объяснения-то должны идти от автора, и, желательно, его голосом. Я не могу этого делать за Вас.
Лучше было бы, если бы Вы научились делать видео по своим текстам самостоятельно. Скачайте программы, освойте их. А я сделаю видео на тему "как рисовать атом" в котором подробно всё объясню.

Дмитрий Маштаков   06.11.2019 08:22   Заявить о нарушении
Мне нужна моя модель. Про старую не надо

Надежда Бабайлова   06.11.2019 09:52   Заявить о нарушении
Надежда, я Вас понял. Увы, помочь не могу. Считаю Вашу модель неверной. О внутриядерных силах можно массу информации найти в интернете. Я хоть и не ядерщик, но физфак МГУ окончил, и в таких вещах разбираюсь.
С уважением, Дм.

Дмитрий Маштаков   06.11.2019 10:29   Заявить о нарушении
Чем электрон- точка несчерпаемее электрона- кольца?

Надежда Бабайлова   06.11.2019 11:28   Заявить о нарушении
Когда пытаются брать самый малюсенький электрончик и исследовать Космос - это грустно. Дело не в малости, а в одиночестве. Он крутится, как бешеный кот во все стороны, стараясь угодить Гейдельбергу: смотри как меня много!!)))

Надежда Бабайлова   06.11.2019 11:32   Заявить о нарушении
Всё зависит от наших бытовых привычек - когда мы намазываем масло на хлеб, то не мыслим масло в качестве единичного предмета. Но маслу, намазанному на хлеб, уже не одиноко. Тем более, что кругом знатоки бутербродов толпятся, и каждый норовит по своему это явление объяснить. ))

Дмитрий Маштаков   06.11.2019 12:57   Заявить о нарушении