Анимация по канве средствами Визуал Бейсика

Дмитрий Маштаков
   Покадровая анимация делается во многих графических редакторах.
   Чтобы создавать анимацию было удобно, обычно используется калька - новый кадр рисуется поверх ослабленного изображения старого кадра. И это легко делается там, где есть т.н. прозрачные слои.
    Визуал Бейсик 6, однако, создавать прозрачные слои неспособен.
    Прозрачность слоя можно эмулировать, используя точечное отображение - чтение цвета точки оператором  Picture.Point  и запись точки на рисунок оператором  Picture.PSet.  Но каждое такое действие требует времени, поэтому, если рисунок большой, например  1000х500pcs,  то программа при таких действиях начинает зависать.

    Длительность процесса можно существенно сократить, если вместо оператора Picture.PSet использовать оператор Picture.Line, и вместо прозрачной кальки создать КАНВУ - наложить на изображение решётку из линий, и пусть изображение не просвечивает, а проглядывает в прорехи между линиями. В этом и состоит основная идея.
    Оказывается, что попутно мы решаем и вторую задачу - удалять старое изображение теперь можно не во всех точках, а выборочно - только в местах прорех, оставляя прочерченные линии как фон для следующего изображения. Удаляя старое изображение мы заменяем его на новое - заполняем прорехи средним цветом от пикселей слева и справа.

    Как это выглядит на практике, показано на иллюстрации.
    Управление канвой ведётся с помощью кнопки разрежения следа. Клики левой кнопкой мыши по этой кнопке меняют на ней цифры 0,1,2 и 3. Соответственно цифре разрежается след рисующего инструмента. Делается это просто – программа реагирует не на каждое перемещение указателя на соседний пиксель рисунка, а пропускает одно, два или три перемещения.
    Но для управления канвой используются клики ПРАВОЙ кнопки мыши.
    За основу анимации возьмём изображение мальчика. Кликами лев.кн.мыши выставим на кнопке цифру 3, кликами по диагональным углам обозначим на рисунке ту область, на которую будем набрасывать канву, и набросим канву, кликнув по кнопке с цифрой 3 прав.кн.мыши. Цвет канвы определяется цветом фона, окружающего кнопку активного цвета.
    Результат вы видите на иллюстрации.
    Далее приступаем к созданию первого кадра анимации – поверх канвы рисуем всё, что хотим. Заметим, что кнопка с цифрой показывает уже не цифру 3, а цифру 0. Это кстати – закончив рисовать, кликаем по ней прав.кн.мыши, и прорехи в канве заполняются.
    Это вы также видите на иллюстрации.
    Выделяем на панели АНИ (см. http://proza.ru/2020/05/19/1989 ) первый кадр и, кликнув по розовой кнопке, запоминаем полученную картинку как первый кадр анимации.
    Затем вновь кликаем по кнопке с цифрой 0 правой кнопкой мыши, и канва появляется на уже сделанном кадре.
Простую анимацию, составленную  таким способом из трёх кадров, можно посмотреть тут - https://yadi.sk/i/p0ng9hGMjoA7WQ
    По ссылке http://yadi.sk/i/G0xwU8r-cMt-fA можно посмотреть мультфильм, который я сделал ранее, а сейчас, используя канву, пририсовал фигуру человека убегающего от дождя.

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