Графика в Паскале
Для работы с графикой в pascal abc используется модуль GraphABC. Для его подключения используется следующий код:
uses GraphABC; begin ... end. |
Система координат в Паскале соответствует экранной системе координат и выглядит следующим образом:
Система координат
Управление цветом
Для того, чтобы использовать цвет, необходимо применить этот цвет к инструменту перо:
- SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color;
- setBrushColor(color) — устанавливает цвет кисти, задаваемый параметром color;
- либо для палитры RGB: SetPenColor(rgb(0-255, 0-255, 0-255));
или использовать для заливки:
FloodFill(x,y,color) — заливает область одного цвета цветом color, начиная с точки (x,y).
После чего можно использовать процедуры для рисования геометрических фигур.
Цвета в pascal abc:
clBlack – черныйclPurple – фиолетовыйclWhite – белыйclMaroon – темно-красныйclRed – красныйclNavy – темно-синийclGreen – зеленыйclBrown – коричневыйclBlue – синийclSkyBlue – голубойclYellow – желтыйclCream – кремовыйclAqua – бирюзовыйclOlive – оливковыйclFuchsia – сиреневыйclTeal – сине-зеленыйclGray – темно-серыйclLime – ярко-зеленыйclMoneyGreen – цвет зеленых денегclLtGray – светло-серыйclDkGray – темно-серыйclMedGray – серыйclSilver – серебряный
Точки, отрезки и ломаные
Для отображения точки в паскале используется процедура:
SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color
uses GraphABC; begin SetPixel(300,200,clred); end. |
Для рисования линии используется:
Line(x1,y1,x2,y2) — рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2)
uses GraphABC; begin SetPenColor(clgreen); line(100,50,500,250); end. |
Ломаные можно рисовать с помощью процедур и .
Процедуры работают в паре: передвигает курсор в определенную точку, а процедура рисует линию с этой точки до точки, определенной параметром данной процедуры.
uses GraphABC; begin ... SetPenColor(clblue); MoveTo (x1, y1); LineTo (x2, y2); LineTo (x3, y3); LineTo (x4, y4); LineTo (x5, y5); end. |
Задание 0: При помощи операторов SetPenColor(), LineTo (x2, y2) и MoveTo (x1, y1) нарисовать квадрат и равносторонний треугольник.
Для установки размеров графического окна используется процедура
SetWindowSize(ширина, высота)
или, например:
SetWindowWidth(600); SetWindowHeight(400); |
Рисование фигур
Прямоугольник в Паскале рисуется:
Rectangle(x1,y1,x2,y2) — рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
uses GraphABC; begin Rectangle(50,50,200,200); end. |
Фигуры с заливкой:
uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end. |
Треугольник рисуется процедурами:
Line(x1,y1,x2,y2); LineTo(x,y);
uses GraphABC; begin setpenwidth(20); setpencolor(clred); moveTo(300,100); lineTo(500,300); lineto(100,300); lineto(300,100); floodfill(300,200,clgreen); end. |
Окружность можно нарисовать с помощью процедуры:
Circle(x,y,r) — рисует окружность с центром в точке (x,y) и радиусом r.
uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end. |
Дуга окружности
Arc(x,y,r,a1,a2) — Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).
1 2 3 4 5 |
uses GraphABC; Begin SetPenWidth(10); Arc(300,250,150,45,135); end. |
Задание 1: «Лягушка»
Задание 2: «Корона»
Функция random для использования окраски
SetPenColor(rgb(random(256), random(256), random(256))); — выбирает случайное число из 256-цветной палитры для красного, зеленого и синего.
Задание 3: Нарисовать горизонтальный ряд окружностей радиусом 10 на расстоянии 100 от верхнего края экрана и с такими горизонтальными координатами 50, 80, 110, 140, … , 290.
* раскрасить круги случайным цветом
Задание 4: «Круги на воде».
Нарисуйте пару десятков концентрических окружностей, то есть окружностей разного радиуса, но имеющих общий центр.
Задание 5:
Воспроизвести изображение при помощи программы:
Штриховка
Нарисовать штриховку на Паскале можно, используя процедуры рисования прямоугольника и линии:
Программа будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
uses graphABC; var i, x1, x2, y1, y2, N integer; h, x real; begin x1 = 100; y1 = 100; x2 = 300; y2 = 200; N = 10; Rectangle (x1, y1, x2, y2); h = (x2 - x1) (N + 1); x = x1 + h; for i=1 to N do begin Line(round(x), y1, round(x), y2); x = x + h; end; end. |
Задание 6:
Нарисуйте шахматную доску.
Как нарисовать мяч для регби
Человеческий мозг запоминает только основные детали объектов, поэтому перед началом работы обязательно подыщите референс, чтобы ничего не выдумывать на ходу.
Мы будем рисовать мяч для регби, на фотографии вы сразу увидите его основные и второстепенные детали:
Изображение: modi.ru / Skillbox Media
Основа мяча
1. Создайте круг и растяните его по длине и высоте мяча, чтобы получился овал.
2. В режиме векторного редактора подгоните форму овала под мяч, чтобы они были похожи.
Видео: Виктор Засыпкин / Skillbox Media
Поперечный шов
1. Создайте круг и растяните его по основному шву, который пересекает его.
2. В режиме векторного редактора подгоните форму овала под шов.
3. Удалите фон, добавьте на вектор обводку и перенесите его на овал в форме мяча.
Видео: Виктор Засыпкин / Skillbox Media
Дополнительный шов
1. Создайте квадрат и подгоните его размеры под форму дополнительного шва.
2. Удалите у фигуры фон, добавьте обводку и скруглите углы . В качестве эталона для скругления возьмите угол шва, который виден лучше всего. В нашем референсе — это левый нижний.
3. В режиме векторного редактора располагайте точки фигуры по направлению шва, а усами регулируйте скругление так, чтобы вектор повторял форму шва.
4. Этот шов не сплошной, а строчной. Укажите в настройках обводки пунктирный стиль. Чтобы это сделать, в блоке Stroke на панели инструментов нажмите и в появившемся меню в пункте Stroke Style укажите стиль Dash. Отрегулируйте настройки Dash (количество точек) и Gap (шаг), чтобы пунктир примерно напоминал шов настоящего мяча.
Видео: Виктор Засыпкин / Skillbox Media
Блик
1. Скопируйте основной овал, выделите его и укажите цвет заливки: белый.
2. Поместите белый овал на мяч и подгоните его под размер блика — он будет примерно на треть меньше основного овала.
3. Поместите блик на мяч. Скорее всего, он будет великоват, поэтому уменьшите его и подправьте ломаные углы с помощью усов.
Видео: Виктор Засыпкин / Skillbox Media
Левая белая полоска
Чтобы её сделать, воспользуйтесь хитростью с наложением слоёв:
1. Создайте круг и с помощью одной из его сторон повторите внешний левый край полоски.
2. Создайте ещё один круг и с его помощью повторите внутренний правый край полоски
Важно, чтобы этот круг в палитре слоёв находился ниже предыдущего
3. В режиме векторного редактора подправьте оба круга, чтобы они точно повторяли изгибы полоски. Для удобства укажите непрозрачность кругов на 50%, чтобы видеть и сами фигуры, и контуры мяча.
4. Выделите обе фигуры, нажмите на панели инструментов на иконку и в выпадающем списке выберите . В результате видимой останется только та часть, в которой ваши круги не пересекаются, — она и образует белую полосу.
Иллюстрация: Виктор Засыпкин
5. Сделайте копию основной формы мяча и подложите её под полоску. Если она выходит за края фигуры, выделите и полоску, и форму мяча, затем на панели инструментов нажмите на иконку и в выпадающем списке выберите . В результате останется видимой только та часть, где ваши круги пересекаются.
Иллюстрация: Виктор Засыпкин
6. Поместите получившуюся фигуру на мяч. Если она залезает на шов, его можно немного уменьшить.
Видео: Виктор Засыпкин / Skillbox Media
Правая белая полоса
Правую полосу можно сделать так же, как и левую, либо нарисовать её самостоятельно с помощью инструмента :
Видео: Виктор Засыпкин / Skillbox Media
Белый шов
1. Белый шов повторяет форму основного. Возьмите поперечный шов, с зажатой клавишей Ctrl (⌘) выделите все точки снизу и удалите их. У вас должна получиться короткая линия длиной с поперечный шов.
2. Поместите линию на референс и, если нужно, сделайте её длиннее или короче в режиме векторного редактора.
3. Поместите вектор на нижний край шва и с помощью пера обведите и остальной контур шва.
4. С помощью пера повторите контуры всех стежков.
Видео: Виктор Засыпкин / Skillbox Media
В результате у вас получится примерно такой мяч:
Рисуем фигуры в Pillow: ellipse, rectangle и line
Вызываем рисования из объекта Draw для рисования фигур на нашем желтом фоне.
Рисуем эллипс, прямоугольник и прямую линию в качестве примера.
Python
from PIL import Image, ImageDraw
# Пустой желтый фон.
im = Image.new(‘RGB’, (500, 300), (219, 193, 27))
draw = ImageDraw.Draw(im)
# Рисуем красный эллипс с черной оконтовкой.
draw.ellipse((100, 100, 150, 200), fill=’red’, outline=(0, 0, 0))
# Рисуем синий прямоугольник с белой оконтовкой.
draw.rectangle((200, 100, 300, 200), fill=’blue’, outline=(255, 255, 255))
# Рисуем розовую линию с шириной в 10 пиксель.
draw.line((350, 200, 450, 100), fill=’pink’, width=10)
im.save(‘draw-ellipse-rectangle-line.jpg’, quality=95)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
fromPIL importImage,ImageDraw im=Image.new(‘RGB’,(500,300),(219,193,27)) draw=ImageDraw.Draw(im) draw.ellipse((100,100,150,200),fill=’red’,outline=(,,)) draw.rectangle((200,100,300,200),fill=’blue’,outline=(255,255,255)) draw.line((350,200,450,100),fill=’pink’,width=10) im.save(‘draw-ellipse-rectangle-line.jpg’,quality=95) |
Полученный результат:
Красивое и плавное замедление видео в CapCut
Если вы хотите сделать эффект Слоу мо, то инструкция, представленная ниже, точно вам пригодится. В ней собрана точная последовательность действий.
Первый шаг: Выберите файл для обработки
Для начала необходимо открыть редактор. Если он уже установлен на ваше устройство, найти его можно в меню приложений. Иконка CapCut имеет белый фон и рисунок чёрного цвета. Ткните на неё.
На главном экране вы увидите кнопку «Новый проект». Нажмите на неё. В результате откроется галерея вашего телефона.
Выберите видео, которое хотите обработать и поставьте галочку в кружочке, который находится в правом верхнем углу. Далее следует нажать на «Добавить».
Второй шаг: Примените эффект
В нижней части рабочего экрана находится панель инструментов. Для замедления видео вам понадобится функция «Скорость». Где она находится вы уже знаете.
Внутри самого инструмента находятся два варианта создания эффекта: нормальная и кривая.
Первая уменьшает или увеличивает скорость всего клипа, а вторая позволяет замедлить отдельные фрагменты. В вашем случае нужно выбрать кривую.
В кривой есть большое количество графиков, по которым происходит изменение скорости. Вы можете выбрать готовый шаблон, но лучше создать собственный. А для этого вам нужно выбрать первый эффект из списка – «Пользовательский».
Внутри находятся 5 опорных точек. Первую и вторую оставьте так как есть, а последнюю и предпоследнюю опустите на 0,5x.
Теперь нужно разместить оставшуюся опорную точку так, чтобы получалась лесенка. Так замедление будет плавным. Выглядеть это должно следующим образом:
Если вы всё сделали правильно, на дорожке появится надпись «пользовательский». Перед сохранением обязательно проверьте то, что у вас получилось.
Третий шаг: Сохраните полученный результат
Для этого нужно нажать на стрелочку, которая находится в верхнем правом углу экрана.
Редактор предложит настроить такие параметры как разрешение и частота кадров. Не игнорируйте этот шаг, потому что от него будет зависеть качество готового контента и его вес. После того, как вы всё настроите, нажмите на «Экспорт».
Анимация текста
Текст должен появляться постепенно, не перетягивать на себя внимание, а как бы мягко сопровождать движение фотографий. Наименование страны будет появляться с помощью эффекта Slow Fade On, который находится на панели Effects & Presets — Animation Presets — Text — Animate In
Слой с цифрами анимируем с помощью эффекта Decoder Fade In, который находится там же
Наименование страны будет появляться с помощью эффекта Slow Fade On, который находится на панели Effects & Presets — Animation Presets — Text — Animate In. Слой с цифрами анимируем с помощью эффекта Decoder Fade In, который находится там же.
Настройки анимации текста
Пример анимации текста для первой фотографии:
Готовая анимация текста
Давайте разберём, как сделать такую анимацию и синхронизировать её с движением фотографии.
Выберите текстовый слой Iceland и перейдите на панель Effects & Presets, найдите эффект Slow Fade On в списке Animation Presets — Text. Перенесите этот эффект мышкой на текстовый слой.
Применяем эффект Slow Fade On на наш текст
Следующим шагом нужно настроить ключевые кадры этого слоя так, чтобы текст появлялся вместе с фотографией. Для этого перейдите в свойства этого слоя, выберите Text — Animator 1 — Range Selector 1 и перенесите первый ключевик на двенадцатый кадр, а второй — на третий кадр второй секунды.
Настраиваем ключевые кадры
Затем выберите слой с цифрой и примените к нему эффект Decoder Fade In, настройте ключевые кадры свойства Text — Animator 1 — Range Selector 1: первый ключевой кадр на втором кадре второй секунды, второй ключевой кадр на девятнадцатом кадре второй секунды.
Применяем эффект Decoder Fade In к слою с цифрой
Когда вы проделаете эти манипуляции со всеми фотографиями, смещая кадры относительно конкретной фотографии, должно получиться так:
Анимация фото и надписей готова
Следующим шагом нужно анимировать боковые фотографии и текст к ним.
Они анимируются по тому же принципу, что и предыдущие фотографии, — с помощью маски. Анимация фотографий начинается по окончании движения последней фотографии основного блока Norway. Левая фотография двигается справа налево, правая — слева направо.
Схема движения анимации крайних фотографий
Выберите фотографии Spain и France, переместите индикатор текущего времени на вторую секунду (на этой секунде заканчивается анимация основной композиции, состоящая из трёх фотографий), нажмите клавишу T (Opacity) на клавиатуре и поставьте ключевой кадр со значением 0%. Затем перейдите на девятнадцатый кадр третьей секунды и установите ключевой кадр там со значением прозрачности 10%. Получилась анимация прозрачности по двум ключевым кадрам от 0% к 10%.
Настройка анимации прозрачности по ключевым кадрам
Анимация прозрачности боковых фотографий готова.
Мы настроили анимацию прозрачности для боковых фотографий
Теперь нужно настроить анимацию маски. Выделите фотографию France, в свойствах выберите Masks — Mask 1 — Mask Patch, перейдите на вторую секунду и установите ключевой кадр. Затем передвиньте индикатор текущего времени на двадцатый кадр третьей секунды и поставьте ещё один ключевой кадр.
Настройка анимации маски по ключевым кадрам
Вернитесь к первому ключевику и передвиньте две крайние вершины маски влево так, чтобы исчезла фотография.
Настраиваем анимацию исчезновения боковой фотографии
Не забудьте настроить Easy Ease: выделите ключевые кадры и нажмите F9, чтобы анимация была более плавной.
Тоже самое проделайте с фотографией Spain. Настройте появление текста самостоятельно, его анимация делается точно так же, как мы делали ранее.
Напомню последовательность действий для анимации текста: перейдите на панель Effects & Presets, раскройте список Animation Presets — Text — Animate In и выберите эффект Slow Fade On. Мышкой перенесите эффект на текст, затем перейдите в свойство текста Text — Animator 1 — Range Selector 1 и настройте ключевые кадры так, чтобы эффект появления текста совпадал с появлением фотографии.
Вот что получилось.
Анимация первого экрана полностью готова
Где сделать эдиты
Самым лучшим приложением по созданию коротких клипов является CapCut. По сравнению с альтернативными вариантами данный редактор имеет множество преимуществ. Вот некоторые из них:
- Удобный интерфейс. Все функции находятся в общей панели. Они расположены по принципу «матрешки». Открываете одну, и видите связанные с ней инструменты.
- Доступность. Чтобы редактировать ролики в этой программе, не нужно платить. Ею могут пользоваться абсолютно все, потому что она бесплатная.
- Большое количество эффектов. Это касается не только фильтров цветокоррекции, но и переходов. Благодаря этому вы сможете создавать качественный контент за несколько минут.
- Возможность работы как с видео, так и с фото. В приложении можно обрабатывать картинки и накладывать их поверх клипа.
- Легко скачать. Данное приложение доступно и на устройствах с Android, и на гаджетах с IOS.
Ещё одна особенность CapCut в том, что оно позволяет обучаться. В верхней части главного экрана есть вкладка с туториалами.
Сетка
Перед тем, как мы начнём рисовать, нам нужно поговорить о сетке canvas или координатной плоскости. Наш HTML каркас из предыдущей страницы включал в себя элемент canvas 150 пикселей в ширину и 150 пикселей в высоту. Справа можно увидеть этот canvas с сеткой, накладываемой по умолчанию. Обычно 1 единица на сетке соответствует 1 пикселю на canvas. Начало координат этой сетки расположено в верхнем левом углу в координате . Все элементы размещены относительно этого начала. Таким образом, положение верхнего левого угла синего квадрата составляет пикселей слева и пикселей сверху, на координате . Позже в этом уроке мы увидим, как можно перевести начало координат в другое место, вращать сетку и даже масштабировать её, но сейчас мы будем придерживаться настроек сетки по умолчанию.
Что такое адаптивный дизайн?
Адаптивный дизайн – это дизайн, обеспечивающий правильное отображение страниц сайта или мобильного приложения на разных устройствах. Иными словами – это его способность подстраиваться под разную ширину экрана и корректно отображать все блоки.
Если речь идет о сайте, то скорее всего дизайнеру придется создавать два варианта макетов – для браузерной и мобильной версий. Так как различия в ширине существенны
Подробно о том, на что нужно обратить внимание при создании адаптивного дизайна сайта, я писала в статье «Как сделать адаптивный дизайн сайта»
Сегодня же речь пойдет о мобильных приложениях.
В Figma с помощью инструмента Ограничители можно создавать дизайн макета под любые размеры фреймов.
Подготовка проекта
Создание проекта
Начните с создания проекта и композиции: File — New — New Project.
Создаем новый проект
Затем выберите New Composition.
Создаем новую композицию
Перед вами появился экран настроек, теперь можно задать нужные параметры. Frame Rate — это количество кадров в секунду, отвечает за плавность анимации: чем выше значение, тем плавнее. Duration — продолжительность анимации. Вы можете менять то и другое в процессе работы.
Окно настроек композиции
Назовите композицию Animations. После создания композиции добавьте новый слой. Щелкните правой кнопкой мыши по панели слоев и выберите New — Solid, цвет белый.
Как работает режим векторного редактора в Figma
Прежде чем рисовать, важно разобраться, как работают инструменты для создания векторных иллюстраций. Если вы уже всё о них знаете —
Если нет — читайте нашу инструкцию.
Для начала нарисуйте простой квадрат:
1. На панели инструментов нажмите на иконку и кликните в любую часть макета.
2. Кликните ещё раз в любую другую часть макета, и у вас появится линия.
3. Таким же образом сделайте ещё три линии, чтобы у вас получился квадрат. Последняя линия должна соединиться с первой. Чтобы линии получились ровными, делайте их с зажатой клавишей Shift.
Иллюстрация: Skillbox Media
Обратите внимание, что, создав первую точку, вы вошли в режим векторного редактора, и панель инструментов изменилась:
Иллюстрация: Skillbox Media
Добавьте на квадрат дополнительные точки, чтобы получился многоугольник:
1. На панели инструментов нажмите на иконку , наведите курсор на одну из линий — посередине вы увидите точку.
2. Зажмите эту точку правой кнопкой мыши и тяните её от центра фигуры.
3. Повторите то же самое с остальными сторонами фигуры.
Иллюстрация: Skillbox Media
Сгладьте углы получившегося прямоугольника:
1. На панели инструментов нажмите на иконку и дважды кликните на любую из точек фигуры.
2. Зажмите любой из краёв появившихся линий — их называют усами. Тяните ус в сторону изгиба угла, чтобы он не пересекал линию дуги. Иначе ваша линия может получиться «мятой».
Иллюстрация: Skillbox Media
3. Повторите то же самое с остальными точками. Если получившееся скругление вам не нравится, нажмите правой кнопкой мыши на нужную вам точку.
Иллюстрация: Skillbox Media
Как и у стандартных фигур в Figma, у вектора можно изменить цвет заливки и параметры обводки:
Иллюстрация: Skillbox Media
Любую стандартную фигуру в Figma — круг , квадрат , треугольник или многоугольник — можно редактировать как вектор. Чтобы это сделать, создайте фигуру и дважды кликните по ней правой кнопкой мыши:
Иллюстрация: Skillbox Media
Сложные режимы
Эти режимы работают на основе яркости. Они будут делать что-то одно с областями, которые ярче 50% серого и что-то другое с областями, которые темнее чем 50% серого.
Overlay
Overlay определённо один из самых полезных режимов. Он применяет Multiply к тёмным областям и Screen к светлым частям верхнего изображения. Результат выглядит так же, как звучит название режима (Overlay = наложение). Порядок расположения слоев важен, так как верхний слой будет виден больше.
Наложение синего градиента на красный.
Soft Light
Немного похож на Overlay, но немного более утончённый. Любые пиксели ярче 50% серого на верхнем слое будут смешаны с нижним слоем. И все точки темнее 50% серого будут затемнены. Это некий микс осветления и затемнения.
Hard Light
Делает то же, что и Overlay, но намного более интенсивно. Верхний слой будет виден сильнее, чем нижний.
Больше синего (так как он верхний), чем красного (он нижний)
Linear Light
Ещё один шаг в сторону экстрима, даже больше, чем Hard Light. Математика Linear Light такая же, как и у Soft Light, но с большей интенсивностью. Этот режим также осветляет и затемняет картинку, основываясь на уровнях серого. Верхний слой также просвечивает больше нижнего.
Намного более интенсивный результат, большая «выгоревшая» белая область
Vivid Light
А этот режим еще более интенсивен, чем Linear Light. Он корректирует контраст нижнего слоя. В результате получаем очень контрастную картинку.
Pin Light
Pin Light делает выбор между верхними или нижними пикселями, основываясь на яркости. Это микс Darken и Lighten на уровне 50% серого для каждого пикселя.
Hard Mix
Это крайне экстремальный и странный режим. На выходе будут только 8 основных цветов: красный, зеленый, синий, голубой, пурпурный, желтый, черный и белый. Кажется бесполезным, но порой применим для некоторых задач композа.
Один пример: дублируем слой и применяем Hard Mix к верхнему. Теперь изменение непрозрачности этого Hard Mix слоя повлечет изменение контрастности нижнего слоя.
Используем дубликат слоя с Hard Mix для управления контрастностью через непрозрачность
Path2D объекты
Как мы видели в последнем примере, есть серия путей и команд для рисования объектов на вашем холсте. Чтобы упростить код и повысить производительность, объект (en-US), доступный в последних версиях браузеров, позволяет вам кешировать или записывать эти команды рисования. Вы можете быстро запускать свои пути.
Давайте посмотрим, как мы можем построить объект :
- (en-US)
- Конструктор возвращает вновь созданный объект необязательно с другим путём в качестве аргумента (создаёт копию) или необязательно со строкой, состоящей из данных пути SVG path .
Все , такие как , , , или , и т.п, которые мы уже знаем, доступны для объектов
API также добавляет способ комбинирования путей с использованием метода . Это может быть полезно, если вы хотите, например, создавать объекты из нескольких компонентов.
- (en-US)
- Добавляет путь к текущему пути с необязательной матрицей преобразования.
В этом примере мы создаём прямоугольник и круг. Оба они сохраняются как объект , поэтому они доступны для последующего использования. С новым API несколько методов были обновлены, чтобы при необходимости принять объект для использования вместо текущего пути. Здесь и используются с аргументом пути, например, для рисования обоих объектов на холст.
Screenshot | Live sample |
---|---|
Ещё одна мощная функция нового Canvas API использует данные пути SVG, SVG path data, для инициализации путей на вашем холсте. Это может позволить вам передавать данные пути и повторно использовать их как в SVG, так и в холсте.
Путь перемещается в точку (), а затем горизонтально перемещается на 80 пунктов вправо (), затем на 80 пунктов вниз (), затем на 80 пунктов влево (), а затем обратно на start ().
Этот пример можно увидеть на странице .
- « Предыдущая статья
- Следующая статья »
Круглый прогресс-бар
Если вместо горизонтального прогресс-бара вам нужен круглый, его сделать так же легко.
- Создайте на макете круг, залейте его белым цветом.
- Скопируйте ваш круг и залейте его другим цветом — например, синим.
- Наведите курсор на круг, и тогда увидите на его контуре точку — зажмите её правой кнопкой мыши и тяните курсор вверх.
- На получившейся фигуре зажмите правой кнопкой мыши точку в центре и тяните курсор влево или вправо.
- По желанию добавьте скругления, чтобы концы получившегося прогресс-бара не были квадратными.
Готово — получился круглый прогресс-бар. Чтобы изменить его длину, наведите курсор на фигуру, зажмите правой кнопкой мыши один из концов фигуры и тяните.
Настройка навигации
Теперь нужно добавить навигацию слайдера, меню-бургер и логотип. Перейдите в композицию I kill giants. Выберите слои буллетов слайдера, название фильма и порядковый номер слайда, а также их общее число. Объедините все слои в композицию Slider navigation.
Создаем композицию Slider navigation
Объедините логотип и меню-бургер в другую композицию, назовите ее Logo. Выделите слой композиции Slider navigation, но пока не открывайте ее. Сдвиньте весь слой на панели Timeline:
Сдвигаем Slider navigation по таймлайну
Это нужно для того, чтобы анимация слоя выполнялась не с первого кадра, а немного с опозданием.
Анимируйте цифры и название фильма масками — вы уже знаете, как это сделать.
Анимация надписей и цифр масками
Общая композиция:
Анимация композиции I kill giants
Проба пера:
Финальный вариант сборки первого слайда
Добавьте буллеты слайдера, чтобы они, например, появлялись одновременно с надписями и чуть-чуть выезжали справа. Это можно реализовать обычным позиционированием и прозрачностью.
Выберите композицию Bullets, которая, в свою очередь, находится в композиции Slider navigation.
Нажмите P и Shift+T для выбора свойств слоя — Position и Opacity. Перейдите на первую секунду на панели Timeline и поставьте там ключевые кадры. Вернитесь на нулевой кадр и так же поставьте ключевые кадры. Для Opacity значение , для Position сместите композицию чуть правее. Выделите все ключевые кадры и нажмите F9 Easy Ease. Должно получиться так:
Настраиваем анимацию буллетов
Из основных элементов незаанимированными остались логотип и меню-бургер.
Рисование линии, многоугольника и точки в Python
-
Линия: :
- Параметр
- Указывает несколько координат двух или более точек как ;
- Рисуются линии, связывающие каждую точку между собой.
- : Ширина линии в пикселях
- Параметр
-
Многоугольник: :
- Параметр
- Указывается несколько координат, трех или более точек как ;
- Рисуется многоугольник, в котором каждая точка соединяется между собой при помощи линии.
- Параметр
-
Точка: :
- Параметр
- Указывается несколько координат одной или более точек как ;
- Одна точка (в размере одного пикселя) рисуется для каждого координата.
- Параметр
Примеры рисования линий , многоугольника и точки представлены ниже. Каждая точка представляет собой 1 пиксель, потому их трудно увидеть, но они все-таки нарисованы в правой части области.
Python
from PIL import Image, ImageDraw
# Пустой желтый фон.
im = Image.new(‘RGB’, (500, 300), (219, 193, 27))
draw = ImageDraw.Draw(im)
# Три черные линии в шириной в 1 пиксель.
draw.line(
xy=(
(30, 200),
(130, 100),
(80, 50)
), fill=’black’)
# Три красные линии с размером в 5 пикселей.
draw.line(
xy=(
(80, 200),
(180, 100),
(130, 50)
), fill=’red’, width=10)
# Имея три точки и связь между ними, у нас получится синий триугольник.
draw.polygon(
xy=(
(200, 200),
(300, 100),
(250, 50)
), fill=’blue’, outline=(0, 0, 0)
)
# Рисуем три точки.
draw.point(
xy=(
(350, 200),
(450, 100),
(400, 50)
), fill=’black’
)
im.save(‘draw-dots.jpg’, quality=95)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
fromPIL importImage,ImageDraw im=Image.new(‘RGB’,(500,300),(219,193,27)) draw=ImageDraw.Draw(im) draw.line( xy=( (30,200), (130,100), (80,50) ),fill=’black’) draw.line( xy=( (80,200), (180,100), (130,50) ),fill=’red’,width=10) draw.polygon( xy=( (200,200), (300,100), (250,50) ),fill=’blue’,outline=(,,) ) draw.point( xy=( (350,200), (450,100), (400,50) ),fill=’black’ ) im.save(‘draw-dots.jpg’,quality=95) |
Полученный результат:
Matte режимы и Utility режимы
Все перечисленные режимы (за исключением Dissolve) влияют на цветовые значения. Оставшиеся же работают с прозрачностью. Все они работают по-разному и их назначение круто отличается от остальных режимов.
Matte режимы
4 режима используют исходный слой в качестве маски, что очень похоже на функцию Track Matte. Для создания маски используются значения Alpha (прозрачности) или Luma (яркости). Это полезно, поскольку слой может функционировать как маска для всех слоёв ниже, а не только для одного, как в случае с Track Matte.
Для этого примера я применяю режимы к шейпу на 50% серого цвета с красным градиентом под ним.
Stencil Luma и Silhouette Luma дают 50% непрозрачности, основанной на цвете круга.
Alpha Add
Это очень специфичный режим, и он больше предназначен для устранения проблем, нежели для комбинирования изображений. Если вы когда-либо использовали маску, чтобы разрезать что-то пополам, а затем инвертировали маску на втором слое-дубликате, то могли заметить некий шов, который можно видеть по краю маски. Вероятно, вы хотели бы, чтобы объект казался сплошным и не имел этого полупрозрачного шва.
Тонкая линия по краю маски
Решением будет режим Alpha Add. Если кратко — он изменит математику, стоящую за anti-aliasing’ом для краев слоя и даст бесшовную картинку.
В итоге получаем сплошной объект
Luminescent Premul
Этот режим также предназначен для решения специфических проблем. Иногда при импорте исходника в After Effects, у которого premultiplied альфа-канал, края альфы могут быть слишком яркими. Если вы столкнулись с этим — попробуйте использовать Straight Alpha вместо Premultiplied и затем закомпозьте все в этом режиме. Если вы хотите больше узнать о разнице между straight и premultiplied альфа-каналами — на этой странице написано об этом.
Бонус — ролик по всем режимам наложения в Photoshop
Материал переведён и адаптирован с сайта School of Motion: https://www.schoolofmotion.com/blog/blending-modes-after-effects
Рисование прямоугольников
В отличие от SVG, поддерживает только одну примитивную фигуру: прямоугольник. Все другие фигуры должны быть созданы комбинацией одного или большего количества контуров (paths), набором точек, соединённых в линии. К счастью в ассортименте рисования контуров у нас есть функции, которые делают возможным составление очень сложных фигур.
Сначала рассмотрим прямоугольник. Ниже представлены три функции рисования прямоугольников в canvas:
- Рисование заполненного прямоугольника.
- Рисование прямоугольного контура.
- Очистка прямоугольной области, делая содержимое совершенно прозрачным.
Каждая из приведённых функций принимает несколько параметров:
- x, y устанавливают положение верхнего левого угла прямоугольника в canvas (относительно начала координат);
- (ширина) и (высота) определяют размеры прямоугольника.
Ниже приведена функция draw(), использующая эти три функции.
Этот пример изображён ниже.
Screenshot | Live sample |
---|---|
Функция fillRect() рисует большой чёрный квадрат со стороной 100 px. Функция clearRect() вырезает квадрат 60х60 из центра, а функция strokeRect() создаёт прямоугольный контур 50х50 пикселей внутри очищенного квадрата.
На следующей странице мы рассмотрим две альтернативы методу clearRect(), и также увидим, как можно изменять цвет и стиль контура отображаемых фигур.
В отличие от функций создания контуров, которые будут рассмотрены в следующем разделе, все три функции создания прямоугольника сразу же отображаются на canvas.