При вставке элемента think-cell, у него появляется градиент и формат цвета изменить нельзя :: think-cell
Проблема
При вставке элементов think-cell, например стрелки разницы уровней или строки значения, их линии выводятся с цветовым градиентом. Не получается изменить цвет линии.
Причина
В PowerPoint есть возможность определить стандартный стиль линии для отдельной презентации или шаблона. Однако из-за ограничения в программном интерфейсе PowerPoint не существует способа для надстройки, такой как think-cell, изменить или определить текущий стандартный стиль линии.
Проблему можно воспроизвести без надстройки think-cell.
Воспроизведение ошибки без think-cell
- Откройте презентацию PowerPoint.
- Вставьте новую линию, выбрав пункт меню Главная → Рисунок → Линия.
- Нажмите на линию правой кнопкой мыши → Формат фигуры и выберите Заливка и линии → Линия → Градиентная линия.
- Нажмите на линию правой кнопкой мыши и выберите команду Назначить как линию по умолчанию.
- Откройте редактор VBA, нажав Alt+F11. Выберите рабочую книгу и нажмите кнопку Вставка → Модуль. Затем вставьте макрос InsertDefaultLine(), который попытается создать линию черного цвета, и запустите его клавишей F5:
Sub InsertDefaultLine()
Dim sld As Slide
Set sld = PowerPoint.ActiveWindow.View.Slide 'The current slide
Dim ln As Shape
Set ln = sld.Shapes.AddLine(10, 10, 250, 250) 'Add default line to slide
ln.Select
ln.Line.Weight = 20
MsgBox "Now specifying a line color of black"
ln.Line.ForeColor.RGB = Black
End Sub
Решение
Для устранения проблемы следует назначить неградиентную линию в качестве стиля по умолчанию:
- Вставьте новую линию, выбрав пункт меню Главная → Рисунок → Линия.
- Нажмите на линию правой кнопкой мыши → Формат фигуры и выберите Заливка и линии → Линия → Сплошная линия.
- Нажмите на линию правой кнопкой мыши и выберите команду Назначить как линию по умолчанию.
Мы связались с Microsoft и запросили добавление программного доступа к настройкам градиента, но на текущий момент такая функция не реализована. Если у вашей компании есть контракт на поддержку Microsoft Office и вы хотите обратиться в Microsoft за исправлением, вы можете указать номер обращения Microsoft 117112417215306.
Как сделать реалистичную радугу. Урок Фотошоп
Если вы так и не успели заснять радугу, то этот урок фотошоп для вас. После его прохождения вы сможете сделать реалистичную радугу на любом подходящем для этого фотоснимке, и об этом никто не догадается.
ШАГ 1
Открываем в Фотошоп подопытное фото. Для тренировки можете взять мое здесь. Пока мы имеем всего лишь один слой «Background
Теперь первым делом создадим новый пустой слой, где будем мастерить радугу, быстрее всего сделать это можно нажав соответствующий значек на палитре слоев (см рисунок ниже)
Фотошоп по умолчанию назовет его Layer1 или Слой 1 (в русской версии). Переименуем его в rainbow или радуга, кому как больше нравиться. Для этого дважды кликнем по имени слоя.
ШАГ 2
Далее выберем инструмент заливки «Градиент» на палитре инструментов. Для быстрого выбора есть «горячая» клавиша
Теперь в окне настройки параметров инструмента (оно находится вверху), выберем вид градиента кликнув на данный значек (см рисунок ниже)
В открывшемся диалоговом окне Gradient Editor/Редактор Градиентов нажимаем на маленький треугольничек, как на рисунке ниже, чтобы выбрать дополнительные готовые наборы градиентов.
В всплывающем списке выбираем набор Special Effects/Специальные эффекты.
Далее всплывет вопросительное окно, где вы должны нажать Append/Добавить
Теперь в окне выбора градиентов выберете Russell’s Rainbow/Радуга Расселла как на рисунке ниже.
Теперь нажимаем ОК и вернемся в окно настройки параметров инструмента, где изменим тип градиента на Radial Gradient/Радиальный градиент. см рисунок ниже.
ШАГ 4
Теперь удостоверимся, что у нас активный слой Rainbow, и выбран инструмент Градиент. Далее отведем курсор мыши в правый нижний угол нашего изображения, теперь нажав и удерживая левую кнопку мыши перетащим курсор вправо как на рисунке ниже. Чтобы перетащить курсор прямолинейно удерживайте нажатой клавишу SHIFT при перемещении.
В итоге у вас должно получиться примерно что то такое, эта радуга конечно еще далеко от реальности.
ШАГ 5
Установим нашему слою с радугой режим наложения Screen/Осветление. Как это сделать смотрите на рисунке ниже.
В итоге получится вот такая радуга.
ШАГ 6
Теперь мы радугу немного размоем, для этого пройдем в меню Filter/Фильтр, далее
В итоге мы должны получить реалистичные очертания радуги, но пока это всего лишь очертания.
ШАГ 7
Создадим Слой-Маску для слоя с радугой, для этого убедимся, что он активный и нажмем соответствующий значек на палитре слоев.
Теперь напротив значка слоя с радугой появился значек Слой-Маски, он белый. Выберите его кликнув по его значку. Когда Слой-Маска выбран, вокруг него видна белая рамка как на рисунке ниже.
ШАГ 8
Нам нужно, чтобы на палитре инструментов Основной цвет был черным, а Фоновый цвет был белым. Если это не так, то нажмите «горячую» клавишу D на клавиатуре, вследствие этого основной цвет на палитре инструментов станет белым, а фоновый черным, далее нажмите «горячую» клавишу
Теперь выберете инструмент Градиент и в окне настройки параметров инструмента выберите значек редактирования градиента.
И далее выберете вид градиента Foreground to Background/От основного к фоновому.
ШАГ 9
Вернемся к в окну настройки параметров инструмента, где поменяем тип градиента на Linear Gradient/Линейный градиент. Смотрите рисунок ниже.
ШАГ 10
Отведем курсор в низ и нажав левую кнопку мыши перетащим курсор вверх, подобно тому как я это сделал в 4-м шаге.
В итоге должно получиться нечто вроде этого. Фотошоп градиентно (т.е. плавно, постепенно) закрасил низ радуги.
ШАГ 11
Теперь дублируем слой с радугой для увеличения интенсивности ее свечения. Для этого выберем слой с радугой кликнув на значке с радугой и нажмем комбинацию клавиш CTRL-J. И вот свечение нашей радуги стало ярче, если это для вас слишком ярко то можете уменьшить непрозрачность слоя до 70% (смотрите рисунок ниже).
У меня получилось так, я изменил непрозрачность до 70 %
ШАГ 12
Дублируем слой с верхней радугой еще раз, нажав CTRL-J, но сперва убедимся что он выбран. Делаем мы это, чтобы создать эффект двойной радуги. Должно получиться вот так.
ШАГ 13
Выберем инструмент «Перемещение» , он самый первый в палитре инструментов.
И перетащим 3-й, самый верхний слой с радугой немного влево. Удерживайте клавишу Shift, для перетаскивания строго горизонтально.
ШАГ 14
Применим к этому перенесенному слою фильтр
ШАГ 15
Сгруппируем 2 одинаковых слоя с радугой, для этого выделим 1 слой и удерживая клавишу Shift выделим 2-й слой. Смотрите рисунок ниже.
Теперь нажмем CTRL-G и наши 2 слоя сгруппируются в одной группе.
ШАГ 16
Теперь выберем нашу группу, кликнув на нее. И добавим к ней Слой-Маску, нажав на значек как на рисунке ниже.
ШАГ 17
Теперь выберем инструмент кисть. Она находится на палитре инструментов.
И теперь выбрав небольшой радиус кисти и маленькую жесткость, аккуратно сотрем радугу с кустов, мы хотим добиться эффекта, что радуга как будто начинается за кустами. Если скрыть радугу не получается вернитесь и просмотрите 8-й шаг, возможно основной и фоновый цвет у вас сбиты, настройте их на перемер 8-го шага.
После корректировки низа радуги мы имеем конечный результат.
Автор: Steve Patterson
Перевод: Александр Ипполитов
App Store: Gradient: Редактор Лица
AI СТИЛИ ФЭНТЕЗИ
3 новых функции уже доступны! Превратись в прекрасного ЭЛЬФА, могучего ОРКА или создай прекрасный портрет в стиле ФЭНТЕЗИ-АРТ всего в одно нажатие.
———
Gradient — это передовое приложение с лучшими AI-технологиями во всем мире! Эксклюзивные и популярные AI-эффекты, самые точные бьюти-функции и профессиональный фоторедактор в одном приложении! Скачай бесплатно прямо сейчас и присоединись к миллионам довольных пользователей!
С Gradient можно сказать “нет” плохим снимкам, ведь в нем есть все необходимое для доведения любой фотографии до идеала! В основе технологий Gradient лежат самые продвинутые технологии в сфере искусственного интеллекта и улучшения фото — все это поможет тебе превратить фото в шедевр за считанные секунды.
———
AI ПРОГНОЗ БУДУЩЕГО
Что ждет тебя в будущем? Выясни это с помощью нашей новейшей AI-технологии! AI Прогноз Будущего определит твое наиболее вероятное будущее! Попробуй прямо сейчас и поделись результатом с друзьями!
———
AI ПОРТРЕТЫ
Искусственный интеллект с нуля нарисует твой идеальный средневековый портрет с помощью самой мощной AI-технологии в мире! Попробуй сейчас абсолютно бесплатно и поделись своей картиной с друзьями!
———
НА КОГО ИЗ ЖИВОТНЫХ ТЫ ПОХОЖ?
Узнай, на какое животное ты больше всего похож с помощью нашей новой сверхточной AI-технологии!
———
НА КОГО ИЗ ЗНАМЕНИТОСТЕЙ ТЫ ПОХОЖ?
Представляем нашу новую РАЗВЛЕКАТЕЛЬНУЮ функцию — самая точная в мире технология поиска похожих личностей! Узнай, кто из исторических личностей или селебрити имеет с тобой общие черты, и поделись невероятным результатом с друзьями в виде Сториз или Поста!
———
ЭКСКЛЮЗИВНЫЕ ФУНКЦИИ
Мы разрабатываем передовые фото-технологии с использованием искусственного интеллекта и внедряем их в виде профессиональных и развлекательных инструментов, которых нет больше нигде.
УНИКАЛЬНЫЕ ФИЛЬТРЫ И ТЕКСТУРЫ
Получай прекрасные портреты всего в одно нажатие при помощи тщательно отобранных фильтров и высококачественных текстур.
ФУНКЦИИ КРАСОТЫ
Меняй размер глаз и губ, настраивай тон кожи и цвет волос — эти и многие другие инструменты помогут тебе подчеркнуть свою естественную красоту!
НОВЫЕ ФУНКЦИИ И КОНТЕНТ КАЖДУЮ НЕДЕЛЮ!
Каждые 7 дней мы добавляем новые крутые инструменты, фильтры и текстуры, так что следи за обновлениями!
———
Подписка Gradient Unlimited
Сотри все границы фоторедактирования с подпиской Gradient Unlimited! Gradient Unlimited дает мгновенный доступ ко ВСЕМ инструментам, фильтрам и текстурам, доступным в приложении.
Тарифные планы:
* Подписка на месяц за 249₽
* Подписка на год за 1490₽
* Подписка Premium на неделю за 399₽
* Подписка Premium на месяц за 1490₽
* Подписка Pro на неделю за 699₽
* Подписка Pro на год за 7999₽
Обратите внимание, что цены указаны в рублях и могут отличаться в других регионах, а также изменяться в будущем. Средства будут списаны с вашего iTunes Account при подтверждении покупки. Подписка будет возобновлена автоматически, если она не была отключена как минимум за 24 часа до окончания текущего периода. Средства при продлении подписки будут автоматически списаны с вашей учетной записи за 24 до окончания текущего периода. Вы можете настроить или отключить автоматическое возобновление подписки в настройках вашего аккаунта Apple ID в любое время после покупки. Возврат средств за неиспользование какого-либо остатка периода подписки не предусмотрен. При оформлении подписки неиспользованный остаток дней пробного периода аннулируется. Действует ограничение в виде одного пробного периода на один аккаунт Apple ID.
С Правилами Пользования и Политикой Конфиденциальности сервиса можно ознакомиться по данным адресам:
https://gradient.photo/terms_of_use.pdf
https://gradient.photo/privacy_policy.pdf
———
Связаться с нами
Мы разрабатываем наше приложение совместно с нашим замечательным сообществом! Делитесь своими идеями и предложениями по адресу contact@gradient. photo.
Применимые группы | Для личного использования | Команда запуска | Микропредприятие | Среднее предприятие |
Срок авторизации | ПОСТОЯННАЯ | ПОСТОЯННАЯ | ПОСТОЯННАЯ | ПОСТОЯННАЯ |
Авторизация портрета | ПОСТОЯННАЯ | ПОСТОЯННАЯ | ПОСТОЯННАЯ | |
Авторизованное соглашение | Персональная авторизация | Авторизация предприятия | Авторизация предприятия | Авторизация предприятия |
Онлайн счет | ||||
Маркетинг в области СМИ (Facebook, Twitter,Instagram, etc.) | личный Коммерческое использование (Предел 20000 показов) | |||
Цифровой медиа маркетинг (SMS, Email,Online Advertising, E-books, etc. ) | личный Коммерческое использование (Предел 20000 показов) | |||
Дизайн веб-страниц, мобильных и программных страниц Разработка веб-приложений и приложений, разработка программного обеспечения и игровых приложений, H5, электронная коммерция и продукт | личный Коммерческое использование (Предел 20000 показов) | |||
Физическая продукция печатная продукция Упаковка продуктов, книги и журналы, газеты, открытки, плакаты, брошюры, купоны и т. Д. | личный Коммерческое использование (Печатный лимит 200 копий) | предел 5000 Копии Печать | предел 20000 Копии Печать | неограниченный Копии Печать |
Маркетинг продуктов и бизнес-план Предложение по проектированию сети, дизайну VI, маркетинговому планированию, PPT (не перепродажа) и т. Д. | личный Коммерческое использование | |||
Маркетинг и показ наружной рекламы Наружные рекламные щиты, реклама на автобусах, витрины, офисные здания, гостиницы, магазины, другие общественные места и т. Д. | личный Коммерческое использование (Печатный лимит 200 копий) | |||
Средства массовой информации (CD, DVD, Movie, TV, Video, etc.) | личный Коммерческое использование (Предел 20000 показов) | |||
Перепродажа физического продукта текстиль, чехлы для мобильных телефонов, поздравительные открытки, открытки, календари, чашки, футболки | ||||
Онлайн перепродажа Мобильные обои, шаблоны дизайна, элементы дизайна, шаблоны PPT и использование наших проектов в качестве основного элемента для перепродажи. | ||||
Портрет Коммерческое использование | (Только для обучения и общения) | |||
Портретно-чувствительное использование (табачная, медицинская, фармацевтическая, косметическая и другие отрасли промышленности) | (Только для обучения и общения) | (Contact customer service to customize) | (Contact customer service to customize) | (Contact customer service to customize) |
Создаем обои для раб. стола сами, фоновые рисунки, абстракция, в уроке фотошопа
Очень интересный фон в стиле психоделика.Это один из моих любимых уроков. Очень быстро и очень красиво. Этот урок покажет вам быстрый и легкий метод создания психоделического фона. Такой фон будет очень трудно нарисовать от руки, но при помощи этого трюка в Photoshop это можно будет сделать за несколько минут
Шаг 1 Откройте новый документ 800 на 800 px. Однако размер документа может быть любым, по вашему желанию. Автор открыл документ с прозрачным фоном, но вы можете использовать любой другой фон по вашему желанию. Шаг 2 Выберете Gradient Tool , а там какой-нибудь яркий, красочный градиент. Автор выбрал сине-красно-желтый градиент. Теперь используйте режим наложения слоя Difference. Это очень важно. Этот метод требует именно такого режима наложения слоя. Ваше верхнее меню должно выглядеть так:
Вы можете использовать любой вид градиента. Экспериментируйте. Вы можете добиться интересных результатов. Шаг 3 Теперь создайте свой первый градиент, протянув его в любом направлении. Автор выбрал прозрачный фон и протянул градиент от нижнего левого угла в верхний правый. Вот что получилось:
Это базовая основа. Однако он еще не так интересен, скоро будет лучше. Шаг 4 Теперь тяните градиент в любом направлении и делайте его различной длины. Режим наложения слоя Difference и послужит основой для быстрого создания эффектных картинок. Подобного эффекта автор достиг, 5 раз протянув градиент в разные стороны.
Заметьте, как меняется картинка светлых и темных цветов после каждого движения мышки. Рисование от руки подобных вещей заняло бы чрезвычайно много времени, а мы сделали это за несколько минут, используя такой быстрый метод. Шаг 5 Отметьте для ваших будущих вариантов. Если получившиеся цвета будут очень темными, вы можете использовать Image-Adjustments-Invert. Это инвертирует все ваши цвета. И вы сможете дальше протягивать ваш градиент куда пожелаете. Вы можете также менять цвета градиента или выбирать любой другой цветной градиент. Автор инвертировал цвета и продолжил дальше протягивать градиенты, остановившись на понравившемся ему варианте. Конечный результат:
уроке фотошоп, уроки фотошопа, урок Photoshop
Учимся рисовать цветными карандашами
Рисование цветового градиента между двумя цветами
Градиент от черного к цвету работает так же, как черно-белый градиент с белым мелком. По сути, вы можете сначала нарисовать цветную область, а на втором шаге нарисовать ее черным (или другим темным цветом). Лично я всегда начинаю с темного цвета, чтобы нарисовать градиент, а затем рисую поверх него более яркий цвет. Мой опыт показывает, что с помощью этого метода градиент становится лучше.Если градиент мне все еще не нравится, я хочу, чтобы он был, я снова прорисовываю его мелками.
градиент цвета от черного к синему
Градиенты двух разных цветов могут быть нарисованы по тому же принципу. Но если вы рисуете, например, градиент от синего к желтому, конечно, у вас есть область в середине зеленого (см. рисунок ниже):
Цветовой градиент от синего к желтому с зеленой средней частью
1. Синий цвет нарисован с градиентом; 2.Зеленый цвет, нарисованный на синем градиенте
Смешивание цветов
Поскольку вы не обязательно называете большой пенал своим собственным, время от времени вы будете в ситуации, когда вам придется самостоятельно смешивать определенный цвет с вашими цветными карандашами. Но даже если вы владеете всеми доступными цветовыми оттенками, иногда необходимо смешивать цвета. Техника смешивания определенных оттенков в основном такая же, как и рисование цветовых градиентов. Далее я опишу некоторые типичные ситуации, в которых вам нужно смешивать цвета.
а) Светлый / Темный
Чтобы нарисовать более яркий оттенок, вы должны сначала заполнить желаемую область (более темным) цветом, который ближе всего к желаемому оттенку. Но заштриховать область нужно только на первом этапе. Это означает, что вам не следует наносить цвет слишком сильно (так что не заостряйте внимание на карандаше). Чтобы улучшить его, вы можете откорректировать область с помощью ластика. Когда вы достигнете желаемого оттенка, вы рисуете его белым мелком — теперь вы должны плотно отпечататься. Таким образом, цвет становится более смешанным, все глубже проникает в поры бумаги и поверхность герметизируется.
На рисунке ниже показаны различия. Слева виден оттенок 152 Phthaloblue Dark (Полихромос). Область кроме того же оттенка использовалась, но только заштрихована. В третьем поле слева показан заштрихованный оттенок 152, исправленный белым карандашом. Здесь бумажная структура уже не узнаваема. Крайняя правая рамка показывает оттенок 45 Phthaloblue Bright (Polychromos), прочно нанесенный на нарисованную бумагу.
Вы можете понять, что даже смешанный оттенок выглядит почти так же, как и оттенок справа.Если вы усердно попытаетесь нарисовать оттенок, вы получите еще лучшие результаты. Wenn man sich beim Zeichnen mehr Mühe gibt wird’s noch besser.
Смешивание цвета с более ярким оттенком
Если вы хотите нарисовать более темный цвет цветными карандашами, лучше сначала заштриховать область черным тоном, а затем применить этот цвет.
б) Создание другого оттенка
Другой оттенок создается цветными карандашами путем смешивания двух разных цветов.Смешивание цветов означает, что два или более цвета рисуются над другим. Вы всегда должны сначала рисовать более темный цвет, а поверх него — более яркий. На рисунке ниже показаны два цвета (красный и желтый), смешанные с оранжевым.
Красный и желтый цвета нарисованы один над другим
1. Красный цвет нарисован заранее;
2. Желтый цвет сильно переходит на красный, чтобы получить оранжевый оттенок.
Это были основы обучения рисованию цветными карандашами.На следующих страницах вы найдете пошаговые инструкции по рисованию куба. Здесь вы можете опробовать урок, который вы усвоили прямо сейчас ;-).
-> Продолжить со страницы 4
Применение стилей и цветов — веб-API
В главе о рисовании фигур мы использовали только стандартные стили линий и заливки. Здесь мы исследуем имеющиеся в нашем распоряжении варианты холста, чтобы сделать наши рисунки немного более привлекательными. Вы узнаете, как добавлять к рисункам разные цвета, стили линий, градиенты, узоры и тени.
До сих пор мы видели только методы контекста рисования. Если мы хотим применить цвета к форме, мы можем использовать два важных свойства: fillStyle
и strokeStyle
.
-
fillStyle = цвет
Задает стиль заливки фигур.
-
strokeStyle = цвет
Задает стиль контуров фигур.
color
— это строка, представляющая CSS
, объект градиента или объект шаблона.Позже мы рассмотрим объекты градиента и узора. По умолчанию цвет обводки и заливки установлен на черный (значение цвета CSS # 000000
).
Примечание: Когда вы устанавливаете свойство strokeStyle
и / или fillStyle
, новое значение становится значением по умолчанию для всех фигур, которые с этого момента рисуются. Для каждой формы, которую вы хотите использовать в другом цвете, необходимо переназначить свойство fillStyle
или strokeStyle
.
Допустимые строки, которые вы можете ввести, должны, в соответствии со спецификацией, быть значениями CSS <цвет>
.Каждый из следующих примеров описывает один и тот же цвет.
ctx.fillStyle = 'апельсин';
ctx.fillStyle = '# FFA500';
ctx.fillStyle = 'rgb (255, 165, 0)';
ctx.fillStyle = 'rgba (255, 165, 0, 1)';
Пример
fillStyle
В этом примере мы снова используем две петли для
, чтобы нарисовать сетку прямоугольников, каждый разного цвета. Полученное изображение должно выглядеть примерно так, как на скриншоте. Ничего особенного здесь не происходит.Мы используем две переменные i
и j
для создания уникального цвета RGB для каждого квадрата и изменяем только значения красного и зеленого. Синий канал имеет фиксированное значение. Изменяя каналы, вы можете создавать все виды палитр. Увеличивая количество шагов, вы можете добиться чего-то похожего на цветовые палитры, которые использует Photoshop.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
for (var i = 0; i <6; i ++) {
for (var j = 0; j <6; j ++) {
ctx.fillStyle = 'rgb (' + Math.floor (255 - 42,5 * я) + ',' +
Math.floor (255 - 42,5 * j) + ', 0)';
ctx.fillRect (j * 25, i * 25, 25, 25);
}
}
}
Результат выглядит следующим образом:
Снимок экрана | Живой образец |
---|---|
A
strokeStyle
пример В этом примере используется штрих , но
для изменения цвета контуров фигур.Мы используем метод arc ()
, чтобы рисовать круги вместо квадратов.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
for (var i = 0; i <6; i ++) {
for (var j = 0; j <6; j ++) {
ctx.strokeStyle = 'rgb (0,' + Math.floor (255 - 42,5 * i) + ',' +
Math.floor (255 - 42,5 * j) + ')';
ctx.beginPath ();
ctx.arc (12,5 + j * 25, 12,5 + i * 25, 10, 0, Math.PI * 2, истина);
ctx.Инсульт();
}
}
}
Результат выглядит так:
Скриншот | Живой образец |
---|---|
Помимо рисования непрозрачных форм на холсте, мы также можем рисовать полупрозрачные (или полупрозрачные) формы. Это делается либо путем установки свойства globalAlpha
, либо путем назначения полупрозрачного цвета стилю обводки и / или заливки.
-
globalAlpha = прозрачность Значение
Применяет указанное значение прозрачности ко всем будущим фигурам, нарисованным на холсте. Значение должно быть от 0,0 (полная прозрачность) до 1,0 (полная непрозрачность). По умолчанию это значение равно 1.0 (полностью непрозрачно).
Свойство globalAlpha
может быть полезно, если вы хотите нарисовать много фигур на холсте с аналогичной прозрачностью, но в противном случае обычно более полезно установить прозрачность для отдельных фигур при установке их цветов.
Поскольку свойства strokeStyle
и fillStyle
принимают значения цвета CSS rgba, мы можем использовать следующую нотацию, чтобы назначить им прозрачный цвет.
ctx.strokeStyle = 'rgba (255, 0, 0, 0,5)';
ctx.fillStyle = 'rgba (255, 0, 0, 0,5)';
Функция rgba ()
аналогична функции rgb ()
, но имеет один дополнительный параметр. Последний параметр устанавливает значение прозрачности этого конкретного цвета.Допустимый диапазон снова составляет от 0,0 (полностью прозрачный) до 1,0 (полностью непрозрачный).
A
globalAlpha
, пример В этом примере мы нарисуем фон из четырех квадратов разного цвета. Поверх них мы нарисуем набор полупрозрачных кругов. Свойство globalAlpha
установлено на 0,2
, которое с этого момента будет использоваться для всех фигур. Каждый шаг в цикле для
рисует набор кругов с увеличивающимся радиусом. Конечный результат - радиальный градиент.Накладывая все больше кругов друг на друга, мы эффективно уменьшаем прозрачность уже нарисованных кругов. Если увеличить количество шагов и, по сути, нарисовать больше кругов, фон полностью исчезнет из центра изображения.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
ctx.fillStyle = '# FD0';
ctx.fillRect (0, 0, 75, 75);
ctx.fillStyle = '# 6C0';
ctx.fillRect (75, 0, 75, 75);
ctx.fillStyle = '# 09F';
ctx.fillRect (0, 75, 75, 75);
ctx.fillStyle = '# F30';
ctx.fillRect (75, 75, 75, 75);
ctx.fillStyle = '#FFF';
ctx.globalAlpha = 0,2;
for (var i = 0; i <7; i ++) {
ctx.beginPath ();
ctx.arc (75, 75, 10 + 10 * i, 0, Math.PI * 2, true);
ctx.fill ();
}
}
Снимок экрана | Живой образец |
---|---|
Пример использования
rgba ()
В этом втором примере мы делаем что-то подобное приведенному выше, но вместо рисования кругов друг на друга я нарисовал маленькие прямоугольники с увеличивающейся непрозрачностью.Использование rgba ()
дает вам немного больше контроля и гибкости, потому что мы можем установить стиль заливки и обводки индивидуально.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
ctx.fillStyle = 'rgb (255, 221, 0)';
ctx.fillRect (0, 0, 150, 37,5);
ctx.fillStyle = 'rgb (102, 204, 0)';
ctx.fillRect (0, 37,5, 150, 37,5);
ctx.fillStyle = 'rgb (0, 153, 255)';
ctx.fillRect (0, 75, 150, 37,5);
ctx.fillStyle = 'rgb (255, 51, 0)';
ctx.fillRect (0, 112,5, 150, 37,5);
for (var i = 0; i <10; i ++) {
ctx.fillStyle = 'rgba (255, 255, 255,' + (я + 1) / 10 + ')';
for (var j = 0; j <4; j ++) {
ctx.fillRect (5 + я * 14, 5 + j * 37,5, 14, 27,5);
}
}
}
Скриншот | Живой пример |
---|---|
Есть несколько свойств, которые позволяют нам стилизовать линии.
-
lineWidth = значение
Устанавливает толщину линий, рисуемых в будущем.
-
lineCap = тип
Задает внешний вид концов линий.
-
lineJoin = type
Задает внешний вид «углов» в местах пересечения линий.
-
miterLimit = значение
Устанавливает ограничение на угол наклона, когда две линии соединяются под острым углом, чтобы вы могли контролировать толщину соединения.
-
getLineDash ()
Возвращает текущий массив шаблонов штриховых штрихов, содержащий четное число неотрицательных чисел.
-
setLineDash (сегменты)
Устанавливает текущий штриховой узор.
-
lineDashOffset = значение
Указывает, где начать штриховой массив в строке.
Вы лучше поймете, что они делают, посмотрев на приведенные ниже примеры.
A
lineWidth
exampleЭто свойство устанавливает текущую толщину линии. Значения должны быть положительными числами. По умолчанию это значение установлено на 1.0 единиц.
Ширина линии - это толщина штриха с центром на заданном пути. Другими словами, нарисованная область простирается до половины ширины линии по обе стороны от пути. Поскольку координаты холста не связаны напрямую с пикселями, необходимо проявлять особую осторожность, чтобы получить четкие горизонтальные и вертикальные линии.
В приведенном ниже примере нарисовано 10 прямых линий с увеличивающейся шириной. Крайняя левая линия имеет ширину 1,0 единицы. Однако крайняя левая и все остальные линии толщины с нечетной целочисленной шириной не кажутся четкими из-за расположения контура.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
for (var i = 0; i <10; i ++) {
ctx.lineWidth = 1 + я;
ctx.beginPath ();
ctx.moveTo (5 + я * 14, 5);
ctx.lineTo (5 + я * 14, 140);
ctx.Инсульт();
}
}
Снимок экрана | Живой образец |
---|---|
Для получения четких линий необходимо понимать, как обводятся контуры. На изображениях ниже сетка представляет собой координатную сетку холста. Квадраты между линиями сетки - это фактические пиксели на экране. На первом изображении сетки ниже прямоугольник от (2,1) до (5,5) заполнен.Вся область между ними (светло-красная) попадает на границы пикселей, поэтому полученный прямоугольник с заливкой будет иметь четкие края.
Если вы рассмотрите путь от (3,1) до (3,5) с толщиной линии 1.0
, вы получите ситуацию на втором изображении. Фактическая область, подлежащая заливке (темно-синий), распространяется только на половину пикселей по обе стороны от контура. Это должно быть приближенно, что означает, что эти пиксели только частично затеняются, и в результате вся область (светло-синий и темно-синий) заполняется цветом, который лишь наполовину темнее фактического цвета штриха.Это то, что происходит с линией ширины 1.0
в предыдущем примере кода.
Чтобы исправить это, вы должны быть очень точными при создании пути. Зная, что линия шириной 1.0
будет расширяться на половину единицы по обе стороны от пути, создавая путь от (3.5,1) до (3.5,5), получается ситуация на третьем изображении - ширина линии 1.0
заканчивается полностью и точно заполняя вертикальную линию в один пиксель.
Примечание: Имейте в виду, что в нашем примере с вертикальной линией позиция Y по-прежнему ссылается на целочисленную позицию линии сетки - если бы это было не так, мы бы увидели пиксели с половинным покрытием в конечных точках (но также обратите внимание, что это поведение зависит от текущий стиль lineCap
, значение по умолчанию - стык
; вы можете вычислить последовательные штрихи с координатами полпикселя для линий нечетной ширины, установив для стиля lineCap
значение квадрат
, чтобы внешняя граница Обводка вокруг конечной точки будет автоматически расширена, чтобы точно покрыть весь пиксель).
Также обратите внимание, что затрагиваются только начальная и конечная конечные точки пути: если путь закрыт с помощью closePath ()
, нет начальной и конечной конечных точек; вместо этого все конечные точки в пути соединяются с присоединенными к ним предыдущим и следующим сегментом с использованием текущей настройки стиля lineJoin
, значение по умолчанию - miter
, с эффектом автоматического расширения внешних границ соединенных сегментов до их точка пересечения, так что визуализированный штрих будет точно покрывать полные пиксели с центром в каждой конечной точке, если эти соединенные сегменты являются горизонтальными и / или вертикальными.См. Следующие два раздела для демонстрации этих дополнительных стилей линий.
Для линий четной ширины каждая половина оказывается целым числом пикселей, поэтому вам нужен путь между пикселями (то есть от (3,1) до (3,5)), а не по середине пикселей.
Хотя изначально работа с масштабируемой 2D-графикой немного болезненна, внимание к пиксельной сетке и положению контуров гарантирует, что ваши рисунки будут выглядеть правильно независимо от масштабирования или любых других задействованных преобразований.Вертикальная линия шириной 1,0, нарисованная в правильном положении, станет четкой линией размером 2 пикселя при увеличении на 2 и появится в правильном положении.
A
lineCap
, пример Свойство lineCap
определяет способ рисования конечных точек каждой линии. Есть три возможных значения для этого свойства: стык
, круглый
и квадрат
. По умолчанию это свойство установлено на стык
:
-
стык
Концы линий скруглены в конечных точках.
-
круглый
Концы линий закруглены.
-
квадрат
Концы линий скругляются путем добавления прямоугольника равной ширины и половины высоты толщины линии.
В этом примере мы нарисуем три линии, каждая с разным значением свойства lineCap
. Я также добавил два руководства, чтобы увидеть точные различия между ними.Каждая из этих строк начинается и заканчивается именно на этих направляющих.
В строке слева используется опция по умолчанию стык
. Вы заметите, что он нарисован полностью заподлицо с направляющими. Второй настроен на использование варианта раунда
. Это добавляет полукруг к концу, радиус которого равен половине ширины линии. В строке справа используется вариант квадрат
. Это добавляет прямоугольник с равной шириной и половиной толщины линии.
function draw () {
var ctx = документ.getElementById ('холст'). getContext ('2d');
var lineCap = ['стык', 'круглый', 'квадратный'];
ctx.strokeStyle = '# 09f';
ctx.beginPath ();
ctx.moveTo (10, 10);
ctx.lineTo (140, 10);
ctx.moveTo (10, 140);
ctx.lineTo (140, 140);
ctx.stroke ();
ctx.strokeStyle = 'черный';
for (var i = 0; i
Снимок экрана | Живой образец |
---|---|
Пример
lineJoin
Свойство lineJoin
кривых определяет, как два соединяющих сегмента (из линий), дуги или нулевые кривые длины в фигуре объединяются (вырожденные сегменты с нулевой длиной, заданные конечные и контрольные точки которых находятся точно в одном и том же положении, пропускаются).
Для этого свойства есть три возможных значения: скругление
, скос
и скос
. По умолчанию это свойство установлено на miter
. Обратите внимание, что параметр lineJoin
не действует, если два соединенных сегмента имеют одинаковое направление, потому что в этом случае не будет добавлена область соединения:
-
круглый
Закругляет углы формы, заполняя дополнительный сектор диска с центром в общей конечной точке соединенных сегментов.Радиус этих закругленных углов равен половине ширины линии.
-
фаска
Заполняет дополнительную треугольную область между общей конечной точкой соединенных сегментов и отдельными внешними прямоугольными углами каждого сегмента.
-
митра
Соединенные сегменты соединяются путем удлинения их внешних краев для соединения в одной точке с эффектом заполнения дополнительной области в форме ромбов.На этот параметр влияет свойство
miterLimit
, которое объясняется ниже.
Пример ниже рисует три разных пути, демонстрируя каждый из этих трех значений свойства lineJoin
; результат показан выше.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
var lineJoin = ['круглый', 'скос', 'митра'];
ctx.lineWidth = 10;
for (var i = 0; i
Скриншот | Живой образец |
---|---|
Демонстрация свойства
miterLimit
Как вы видели в предыдущем примере, при соединении двух линий miter В варианте, внешние края двух соединительных линий расширяются до точки, где они встречаются.Для линий, находящихся под большим углом друг к другу, эта точка находится недалеко от внутренней точки соединения. Однако по мере того, как углы между каждой линией уменьшаются, расстояние (длина скоса) между этими точками увеличивается экспоненциально.
Свойство miterLimit
определяет, насколько далеко внешняя точка подключения может быть размещена от внутренней точки подключения. Если две линии превышают это значение, вместо этого рисуется соединение со скосом. Обратите внимание, что максимальная длина скоса - это произведение ширины линии, измеренной в текущей системе координат, на значение этого свойства miterLimit
(значение по умолчанию - 10.0 в HTML ), поэтому
miterLimit
можно установить независимо от текущего масштаба отображения или любых аффинных преобразований путей: это влияет только на эффективно визуализируемую форму краев линии.
Точнее, предел угла наклона - это максимально допустимое отношение длины расширения (на холсте HTML оно измеряется между внешним углом соединяемых краев линии и общей конечной точкой соединяемых сегментов, указанных в пути) к половине ширина линии.Это может быть эквивалентно определено как максимально допустимое отношение расстояния между внутренней и внешней точками соединения краев к общей ширине линии. Тогда он равен косекансу половины минимального внутреннего угла соединяющих сегментов, ниже которого не будет отображаться стык под углом, а будет только стык со скосом:
-
miterLimit
= maxmiter Длина
/line Ширина
= 1/ sin ( min θ /2) - Предел митры по умолчанию - 10.0 удалит все митры для острых углов ниже примерно 11 градусов.
- Предел митры, равный √2 ≈ 1,4142136 (с округлением вверх), срезает митры для всех острых углов, сохраняя соединения под углом только для тупых или прямых углов.
- Предел митры, равный 1.0, действителен, но отключит все митры.
- Значения ниже 1,0 недопустимы для предела митры.
Вот небольшая демонстрация, в которой вы можете динамически установить miterLimit
и посмотреть, как это влияет на формы на холсте.Синие линии показывают, где находятся начальная и конечная точки каждой из линий зигзагообразного узора.
Если вы укажете значение miterLimit
ниже 4,2 в этой демонстрации, ни один из видимых углов не будет соединяться с удлинением под углом, а только с небольшим скосом возле синих линий; с miterLimit
больше 10, большинство углов в этой демонстрации должны соединяться под углом далеко от синих линий, и высота которого уменьшается между углами слева направо, потому что они соединяются с растущими углами; при промежуточных значениях углы на левой стороне будут соединяться только скосом около синих линий, а углы на правой стороне - с удлинением под углом (также с уменьшающейся высотой).
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
ctx.clearRect (0, 0, 150, 150);
ctx.strokeStyle = '# 09f';
ctx.lineWidth = 2;
ctx.strokeRect (-5, 50, 160, 50);
ctx.strokeStyle = '# 000';
ctx.lineWidth = 10;
if (document.getElementById ('miterLimit'). value.match (/ \ d + (\. \ d +)? /)) {
ctx.miterLimit = parseFloat (document.getElementById ('miterLimit'). значение);
} еще {
alert ('Значение должно быть положительным числом');
}
ctx.beginPath ();
ctx.moveTo (0, 100);
for (i = 0; i <24; i ++) {
var dy = i% 2 == 0? 25: -25;
ctx.lineTo (Math.pow (i, 1.5) * 2, 75 + dy);
}
ctx.stroke ();
вернуть ложь;
}
<таблица>
Измените miterLimit
, введя новое значение ниже и нажав кнопку перерисовки.
документ.getElementById ('miterLimit'). value = document.getElementById ('холст'). getContext ('2d'). miterLimit;
рисовать();
Скриншот | Живой образец |
---|---|
Использование штриховых штрихов
Линии setLineDash
определяют метод и lineDashOffset для свойства
lineDashOffset. Метод
setLineDash
принимает список чисел, который определяет расстояния для попеременного рисования линии и разрыва, а свойство lineDashOffset
устанавливает смещение, с которого начинается узор.
В этом примере мы создаем эффект марширующих муравьев. Это метод анимации, который часто используется в инструментах выбора программ компьютерной графики. Это помогает пользователю отличить границу выделения от фона изображения путем анимации границы. В более поздней части этого руководства вы узнаете, как делать эту и другие базовые анимации.
var ctx = document.getElementById ('холст'). GetContext ('2d');
var offset = 0;
function draw () {
ctx.clearRect (0, 0, canvas.width, canvas.height);
ctx.setLineDash ([4, 2]);
ctx.lineDashOffset = -offset;
ctx.strokeRect (10, 10, 100, 100);
}
function march () {
смещение ++;
if (offset> 16) {
смещение = 0;
}
рисовать();
setTimeout (20 марта);
}
Март();
Скриншот | Живой образец |
---|---|
Как и в любой обычной программе для рисования, мы можем заливать и обводить фигуры с помощью линейных, радиальных и конических градиентов.Мы создаем объект CanvasGradient
, используя один из следующих методов. Затем мы можем назначить этот объект свойствам fillStyle
или strokeStyle
.
-
createLinearGradient (x1, y1, x2, y2)
Создает объект линейного градиента с начальной точкой (
x1
,y1
) и конечной точкой (x2
,y2
).-
createRadialGradient (x1, y1, r1, x2, y2, r2)
Создает радиальный градиент.Параметры представляют две окружности, одна с центром в (
x1
,y1
) и радиусомr1
, а другая с центром в (x2
,y2
) с радиусомr2.
.-
createConicGradient (угол, x, y)
Создает объект с коническим градиентом с начальным углом
, угол
в радианах в позиции (x
,y
).
Например:
var lineargradient = ctx.createLinearGradient (0, 0, 150, 150);
var radialgradient = ctx.createRadialGradient (75, 75, 0, 75, 75, 100);
После того, как мы создали объект CanvasGradient
, мы можем назначить ему цвета с помощью метода addColorStop ()
.
-
gradient.addColorStop (положение, цвет)
Создает новую цветовую точку на объекте
gradient
. Позицияcolor
должен быть строкой, представляющей CSS
Вы можете добавить к градиенту столько точек цвета, сколько вам нужно. Ниже представлен очень простой линейный градиент от белого к черному.
var lineargradient = ctx.createLinearGradient (0, 0, 150, 150);
lineargradient.addColorStop (0, «белый»);
lineargradient.addColorStop (1, «черный»);
A
createLinearGradient
, пример В этом примере мы создадим два разных градиента. Как вы можете видеть здесь, свойства strokeStyle
и fillStyle
могут принимать объект canvasGradient
в качестве допустимого ввода.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
var lingrad = ctx.createLinearGradient (0, 0, 0, 150);
lingrad.addColorStop (0, '# 00ABEB');
lingrad.addColorStop (0.5, '#fff');
lingrad.addColorStop (0.5, '# 26C000');
lingrad.addColorStop (1, '#fff');
var lingrad2 = ctx.createLinearGradient (0, 50, 0, 95);
lingrad2.addColorStop (0.5, '# 000');
lingrad2.addColorStop (1, 'rgba (0, 0, 0, 0)');
ctx.fillStyle = lingrad;
ctx.strokeStyle = lingrad2;
ctx.fillRect (10, 10, 130, 130);
ctx.strokeRect (50, 50, 50, 50);
}
Первый - это фоновый градиент. Как видите, мы присвоили два цвета одной и той же позиции. Вы делаете это для очень резких переходов цвета - в данном случае от белого к зеленому. Обычно не имеет значения, в каком порядке вы определяете остановки цвета, но в этом особом случае это имеет большое значение. Если вы сохраните задания в том порядке, в котором они должны отображаться, это не будет проблемой.
Во втором градиенте мы не назначали начальный цвет (в позиции 0.0), поскольку это не было строго необходимо, потому что он автоматически принимает цвет следующей остановки цвета. Следовательно, присвоение черного цвета в позиции 0,5 автоматически делает градиент от начала до этой остановки черным.
Снимок экрана | Живой образец |
---|---|
Пример createRadialGradient
В этом примере мы определим четыре различных радиальных градиента.Поскольку у нас есть контроль над начальной и конечной точками градиента, мы можем добиться более сложных эффектов, чем обычно в «классических» радиальных градиентах, которые мы видим, например, в Photoshop (то есть градиент с одним центром точка, в которой градиент расширяется наружу в форме круга).
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
var radgrad = ctx.createRadialGradient (45, 45, 10, 52, 50, 30);
radgrad.addColorStop (0, '# A7D30C');
радград.addColorStop (0.9, '# 019F62');
radgrad.addColorStop (1, 'rgba (1, 159, 98, 0)');
var radgrad2 = ctx.createRadialGradient (105, 105, 20, 112, 120, 50);
radgrad2.addColorStop (0, '# FF5F98');
radgrad2.addColorStop (0.75, '# FF0188');
radgrad2.addColorStop (1, 'rgba (255, 1, 136, 0)');
var radgrad3 = ctx.createRadialGradient (95, 15, 15, 102, 20, 40);
radgrad3.addColorStop (0, '# 00C9FF');
radgrad3.addColorStop (0.8, '# 00B5E2');
radgrad3.addColorStop (1, 'rgba (0, 201, 255, 0)');
var radgrad4 = ctx.createRadialGradient (0, 150, 50, 0, 140, 90);
radgrad4.addColorStop (0, '# F4F201');
radgrad4.addColorStop (0.8, '# E4C700');
radgrad4.addColorStop (1, 'rgba (228, 199, 0, 0)');
ctx.fillStyle = radgrad4;
ctx.fillRect (0, 0, 150, 150);
ctx.fillStyle = radgrad3;
ctx.fillRect (0, 0, 150, 150);
ctx.fillStyle = radgrad2;
ctx.fillRect (0, 0, 150, 150);
ctx.fillStyle = radgrad;
ctx.fillRect (0, 0, 150, 150);
}
В этом случае мы немного сместили начальную точку от конечной точки, чтобы получить сферический 3D-эффект.Лучше избегать перекрытия внутреннего и внешнего кругов, потому что это приводит к странным эффектам, которые трудно предсказать.
Последняя точка цвета в каждом из четырех градиентов использует полностью прозрачный цвет. Если вы хотите получить хороший переход от этого к предыдущему окну цвета, оба цвета должны быть одинаковыми. Это не очень очевидно из кода, потому что он использует два разных метода цвета CSS в качестве демонстрации, но в первом градиенте # 019F62 = rgba (1,159,98,1)
.
Скриншот Живой образец
A
createConicGradient
пример В этом примере мы определим два разных конических градиента. Конический градиент отличается от радиального тем, что вместо создания кругов он вращается вокруг точки.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
вар conicGrad1 = ctx.createConicGradient (2, 62, 75);
conicGrad1.addColorStop (0, '# A7D30C');
conicGrad1.addColorStop (1, '#fff');
var conicGrad2 = ctx.createConicGradient (0, 187, 75);
conicGrad2.addColorStop (0, «черный»);
conicGrad2.addColorStop (0,25, «черный»);
conicGrad2.addColorStop (0,25, «белый»);
conicGrad2.addColorStop (0,5, «белый»);
conicGrad2.addColorStop (0,5, «черный»);
conicGrad2.addColorStop (0,75, «черный»);
conicGrad2.addColorStop (0,75, «белый»);
conicGrad2.addColorStop (1, 'белый');
ctx.fillStyle = conicGrad1;
ctx.fillRect (12, 25, 100, 100);
ctx.fillStyle = conicGrad2;
ctx.fillRect (137, 25, 100, 100);
}
Первый градиент располагается в центре первого прямоугольника и перемещает остановку зеленого цвета в начале на белую в конце. Угол начинается с 2 радиан, что заметно из-за того, что начальная / конечная линия направлена на юго-восток.
Второй градиент также расположен в центре второго прямоугольника.У этого есть несколько цветовых остановок, чередующихся от черного к белому в каждой четверти поворота. Это дает нам эффект мозаики.
Скриншот Живой образец
В одном из примеров на предыдущей странице мы использовали серию циклов для создания узора изображений. Однако существует гораздо более простой метод: метод createPattern ()
.
-
createPattern (изображение, тип)
Создает и возвращает новый объект шаблона холста. изображение
- это CanvasImageSource
(то есть HTMLImageElement
, другой холст, элемент
и т.п. тип
- это строка, указывающая, как использовать изображение.
Тип определяет, как использовать изображение для создания шаблона, и должен быть одним из следующих строковых значений:
-
повторить
Располагает изображение мозаикой как в вертикальном, так и в горизонтальном направлениях.
-
повторять x
Располагает изображение по горизонтали, но не по вертикали.
-
повторение
Располагает изображение вертикально, но не горизонтально.
-
без повтора
Не мозаичное изображение. Используется только один раз.
Мы используем этот метод для создания объекта CanvasPattern
, который очень похож на методы градиента, которые мы видели выше.Создав узор, мы можем назначить его свойствам fillStyle
или strokeStyle
. Например:
var img = новое изображение ();
img.src = 'someimage.png';
var ptrn = ctx.createPattern (img, 'повторять');
Примечание: Как и в случае с методом drawImage ()
, вы должны убедиться, что используемое изображение загружено перед вызовом этого метода, иначе узор может быть нарисован неправильно.
A
createPattern, пример
В этом последнем примере мы создадим шаблон, который будет назначен свойству fillStyle
.Единственное, на что стоит обратить внимание, это использование обработчика onload
образа. Это необходимо для того, чтобы изображение было загружено до того, как оно будет назначено шаблону.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
var img = новое изображение ();
img.src = 'canvas_createpattern.png';
img.onload = function () {
var ptrn = ctx.createPattern (img, 'повторять');
ctx.fillStyle = ptrn;
ctx.fillRect (0, 0, 150, 150);
}
}
Скриншот Живой образец
Использование теней включает всего четыре свойства:
-
shadowOffsetX = с плавающей запятой
Указывает расстояние по горизонтали, на которое тень должна распространяться от объекта.На это значение не влияет матрица преобразования. По умолчанию - 0.
-
shadowOffsetY = с плавающей запятой
Указывает расстояние по вертикали, на которое тень должна распространяться от объекта. На это значение не влияет матрица преобразования. По умолчанию - 0.
-
shadowBlur = float
Указывает размер эффекта размытия; это значение не соответствует количеству пикселей и не зависит от текущей матрицы преобразования.Значение по умолчанию - 0.
-
shadowColor = цвет
Стандартное значение цвета CSS, указывающее цвет эффекта тени; по умолчанию это полностью прозрачный черный цвет.
Свойства shadowOffsetX
и shadowOffsetY
указывают, как далеко должна распространяться тень от объекта в направлениях X и Y; на эти значения не влияет текущая матрица преобразования. Используйте отрицательные значения, чтобы тень распространялась вверх или влево, а положительные значения, чтобы тень распространялась вниз или вправо.По умолчанию они равны 0.
Свойство shadowBlur
указывает размер эффекта размытия; это значение не соответствует количеству пикселей и не зависит от текущей матрицы преобразования. Значение по умолчанию - 0.
Свойство shadowColor
- это стандартное значение цвета CSS, указывающее цвет эффекта тени; по умолчанию это полностью прозрачный черный цвет.
Пример затененного текста
В этом примере рисуется текстовая строка с эффектом затенения.
function draw () {
var ctx = document.getElementById ('холст'). getContext ('2d');
ctx.shadowOffsetX = 2;
ctx.shadowOffsetY = 2;
ctx.shadowBlur = 2;
ctx.shadowColor = 'rgba (0, 0, 0, 0.5)';
ctx.font = '20px Times New Roman';
ctx.fillStyle = 'Черный';
ctx.fillText ('Пример строки', 5, 30);
}
Скриншот Живой образец
Мы рассмотрим свойство font
и метод fillText
в следующей главе, посвященной рисованию текста.
При использовании fill
(или clip
и isPointInPath
) вы можете дополнительно предоставить алгоритм правила заполнения, с помощью которого можно определить, находится ли точка внутри или вне контура и, таким образом, заполняется она или нет. Это полезно, когда путь пересекает сам себя или является вложенным.
Возможны два значения:
В этом примере мы используем правило evenodd
.
function draw () {
var ctx = document.getElementById ('холст').getContext ('2d');
ctx.beginPath ();
ctx.arc (50, 50, 30, 0, Math.PI * 2, истина);
ctx.arc (50, 50, 15, 0, Math.PI * 2, истина);
ctx.fill ('evenodd');
}
Скриншот Живой образец
Освоение инструмента «Градиент» «Настройки инструмента / раскраска # 7» от ClipStudioOfficial
Совместимость с Clip Studio Paint Ver.1.10.2
[1] Основные операции инструмента градиента
(1) Укажите область, которую вы хотите нарисовать, с помощью инструмента [Область выделения] и т. Д.заранее. При рисовании на одном слое выделение не требуется.
(2) Выберите инструмент [Градиент] на палитре [Инструмент] и выберите настройки для использования на палитре [Дополнительный инструмент].
В этом примере мы выберем «От переднего плана к фону».
(3) Выберите случайный цвет рисунка на [Цветовом круге].
Здесь основной цвет установлен на светло-желтый, а вспомогательный цвет - на светло-зеленый.
(4) Щелкните и перетащите курсор над холстом, чтобы нарисовать градиент.
[2] Указание цветов градиента
Среди вспомогательных инструментов [Градиент] есть инструменты, отражающие цвета рисунка или цвета фона, и инструменты с заданными цветами.
Используя настройку, отражающую (основной) цвет рисунка и цвет фона (вспомогательный), все цвета между двумя цветами могут быть выражены в градиенте.
Для того, чтобы использовать градиент для комбинации определенного цвета, широко или рисовать градиенты из трех или более цветов, создать градиент с индивидуальными настройками в окне [Edit] градиентного диалог.
(1) Выберите инструмент [Градиент] и щелкните часть эскиза палитры [Свойство инструмента].
(2) Выберите узел (отмеченный ▲) цвета, который нужно изменить, в диалоговом окне [Редактировать градиент].
(3) Установите [Цвет] и [Непрозрачность] выбранного узла.
При выборе определенного цвета выберите [Указанный цвет] и укажите цвет на цветовом чипе.
(4) Щелкните нижнюю часть градиента, чтобы добавить новый узел.
(5) Таким же образом установите положение и цвет других добавленных узлов.
Например, если вы хотите разместить узел на полпути или расположить узлы через равные промежутки времени, вы можете настроить значение [Position] числовыми значениями вместо перетаскивания.
[ТОЧКА]
Вы можете использовать стрелки влево и вправо для переключения выбранного узла, когда узлы находятся близко друг к другу.
Удалите ненужные узлы, перетащив их за пределы кадра или нажав значок корзины.
(6) После завершения настройки градиента добавьте текущую настройку в [Набор градиентов].
(7) Загрузите предустановленные настройки градиента и созданные градиенты, дважды щелкнув по ним в списке наборов градиентов.
[3] Цель рисования градиента
Установив параметры инструмента для инструмента [Градиент], выберите, следует ли рисовать градиент непосредственно на текущем выбранном слое или создать слой градиента и рисовать на нем.В начальных настройках цель рисования установлена на [Рисовать на слое редактирования], но вы можете изменить это по своему усмотрению.
При использовании слоя градиента такие настройки, как угол и цвет, можно впоследствии изменить с помощью инструмента [Объект].Кроме того, поскольку маски создаются автоматически, диапазон градиента можно указать позже. При использовании его в качестве градиентного тона с монохромным наброском полезно создать слой градиента.
С другой стороны, вы не можете напрямую рисовать на слое градиента, поэтому добавление / редактирование градиентов и смешивание их с другими цветами невозможно.Более того, для каждого градиента создается слой, поэтому он не подходит для одновременного наложения нескольких градиентов.
[4] Градиент для манги
Для монохромной манги вы можете нарисовать градиент от черного до прозрачного.
В исходных настройках для параметра [Цель рисования] установлено значение [Создать слой градиента].
Градиентов · Эскиз
Чтобы применить градиентную заливку к слою, нажмите кнопку цвета в разделе «Заливки» в Инспекторе, затем выберите кнопки линейного, радиального или углового градиента в верхней части всплывающего окна.
Как создавать линейные градиенты
С линейным градиентом приложение Mac добавляет линию с двумя точками к вашему слою.
Чтобы изменить цвет градиента, щелкните любую точку и выберите цвет, используя всплывающее окно цвета в Инспекторе. Чтобы добавить другой цвет к градиенту, щелкните в любом месте линии градиента, чтобы добавить новую точку.
Перетащите цветные точки, чтобы изменить внешний вид вашего градиента. Или выберите точку и нажмите клавишу Backspace, чтобы удалить ее.
Как создавать радиальные градиенты
Редактирование радиальных градиентов аналогично редактированию линейных градиентов, за исключением того, что одна из точек теперь устанавливает середину эффекта, а ее противоположная точка устанавливает, где заканчивается эффект.Перетаскивая нецветную точку, вы можете контролировать размер эффекта.
Как создавать угловые градиенты
Угловые градиенты помещают любые цветовые точки, которые вы создаете, на круг (в зависимости от максимальной высоты или ширины слоя). Вы можете перетащить точки, чтобы отрегулировать их положение, или щелкните круг, чтобы добавить новые точки.
Как использовать градиентную полосу
Наряду с точками градиента на ваших слоях вы можете использовать полосу градиента во всплывающем окне цвета для настройки и управления градиентом.Это работает точно так же. Щелкните точку, чтобы изменить ее цвет, и перетащите ее, чтобы переместить, щелкните в любом месте панели, чтобы добавить новый цвет, или выберите точку и нажмите клавишу Backspace, чтобы удалить ее.
Как настроить точки градиента с помощью ярлыков
Для настройки градиента можно использовать следующие ярлыки:
1 - 9 Поместите новую цветовую точку вдоль полосы градиента (например, 3 = 30% вдоль. = Располагает точку градиента на равных расстояниях между двумя другими точками. Выступ Переключение между цветовыми точками. → или ← Постепенно отрегулируйте положение цветовой точки. ⇧ → или ← Увеличивайте положение цветовой точки.
Нам очень жаль.
Сообщите нам, что вы искали:
Если вам нужна дополнительная помощь или вы хотите сообщить об ошибке в этом содержании,
обратитесь в службу поддержки.
Ваш электронный адрес (чтобы мы могли вам ответить) Отправьте свой отзыв
Отмена Спасибо за ваш отзыв.
Произошла ошибка, повторите попытку позже.
15 linear-gradient%
Линейный градиент используется с кистью% для заливки
области с плавными переходами цвета.
Цветовые переходы основаны на линии, где цвета назначаются
точки остановки вдоль линии, а цвета для промежуточных точек
интерполированный из цветов стоп-точки. Цвет точки на
линия градиента распространяется на все точки в контексте рисования
которых касается линия, проходящая через точку и перпендикулярную
линия градиента. Создает линейный градиент с линией из (x0, y0)
до конечной точки (x1, y1). Список остановок
назначает цвета для точек остановки вдоль линии, где 0,0
соответствует (x0, y0), 1.0 соответствует
(x1, y1), а числа между ними соответствуют
точки между ними.
Элементы в стопах неявно сортируются по пунктам (т. Е. По
число от 0,0 до 1,0). Порядок сохраняется
для нескольких элементов для одной и той же точки, и в этом случае первый
элемент для данной точки обрабатывается бесконечно малым перед точкой,
и дополнительные элементы между первым и последним для точки остановки
фактически игнорируются.
Примеры:
> (определить эллипс-кисть (новая кисть% [градиент (новый линейный градиент% [y0 200] [x1 200] [y1 0] [останавливает (список (список 0 (цвет make-объекта% 255 0 0)) (список 0.5 (make-object color% 0 255 0)) (list 1 (make-object color% 0 0 255))])]))
> (определить прямоугольник -brush (новая кисть% [градиент (новый линейный градиент% [x0 0] [y0 100] 100139] [y1 0] [останавливает (список (список 0 (цвет объекта% 255 0 0)) (список 0.5 (make-object color% 0 255 0)) (list 1 (make-object color% 0 0 255))])]))
> (dc (λ (dc dx dy) (определить old-pen (send dc get-pen)) (define old-brush (send dc get-brush)) (определить -values (ox oy) (отправить dc get-origin)) (отправить dc set-pen "черный" 1 'прозрачный) (отправить dc set-brush ellipse-brush) (отправить dc set-origin (+ ox dx 50) (+ oy dy 50)) (отправить dc draw-ellipse 0 0200 200) (отправить dc set- кисть прямоугольник-кисть) (отправить dc set-origin (+ ox dx 300) (+ oy dy 50)) (отправить dc draw- прямоугольник 0 0200200) (send dc set-pen old-pen) (send dc set-brush old-brush) (send dc set-origin ox oy )) 550300)
Возвращает контрольную линию градиента как x0, y0,
x1 и y1.
Возвращает список цветовых точек градиента.
Градиент (уклон) прямой
Градиент (также называемый уклоном) прямой линии показывает, насколько крута прямая линия.
Рассчитать
Для расчета градиента:
Разделите изменение высоты на изменение горизонтального расстояния
Градиент = Изменение Y Изменение X
Поиграйте (перетащите точки):
Примеры:
Градиент = 3 3 = 1
Итак, градиент равен 1
Градиент = 4 2 = 2
Линия круче, поэтому Градиент больше.
Градиент = 3 5 = 0,6
Линия менее крутая, поэтому Градиент меньше.
Положительный или отрицательный?
Двигаясь слева направо, велосипедист должен проехать P по выезду на P ositive Наклон:
При измерении линии:
- Если начать слева и пройти через вправо, то
положителен (а слева - отрицательно). - Вверх положительный , а вниз отрицательный
Градиент = −4 2 = −2
Эта линия идет на вниз на по мере вашего движения, поэтому градиент у нее отрицательный.
Прямо через
Градиент = 0 5 = 0
Линия, идущая прямо (по горизонтали), имеет нулевой градиент.
Прямо вверх и вниз
Градиент = 3 0 = undefined
Последний вариант немного сложен ... вы не можете разделить на ноль,
, поэтому градиент «прямой вверх и вниз» (вертикальной) линии «не определен».
Поднимись и беги
Иногда горизонтальное изменение называется "бегом", а вертикальное изменение - "подъемом" или "падением":
Это просто разные слова, никакие расчеты не меняются.
Приложение для детского рисования Tux Paint теперь имеет параметры градиентной заливки и пиксельной графики
Tux Paint - это приложение для рисования с открытым исходным кодом, альтернатива Microsoft Paint в Linux. Это кроссплатформенное приложение, которое также можно использовать в Windows и macOS.
Tux Paint в первую очередь предназначен для использования детьми в возрасте от 3 до 12 лет. Фактически, он используется в школах по всему миру. Он имеет простой в использовании интерфейс, звуковой эффект и талисман Tux, который играет роль проводника в увлекательной игровой форме.
Конечно, это не означает, что вы не можете использовать Tux Paint, если вам 13 лет и старше.
Разработчики Tux Paint только что выпустили версию 0.9.26. Посмотрим, какие новые функции вы получите в последней версии.
Что нового в Tux Paint 0.9.26?
Вот основные улучшения, добавленные в версии 0.9.26.
Инструмент заливки теперь имеет параметр градиента
Цвета градиента в последнее время приобрели некоторую популярность. Помня об этом, инструмент «Заливка» в Tux Paint теперь может заливать выделенную область градиентными цветами.
Доступны два вида градиентной заливки. «Радиальная» заливка создает круговой градиент с центром вокруг щелчка мыши, а «Линейная» заливка позволяет интерактивно создавать градиенты под разными углами и размерами.
Magic tools теперь имеет параметры пикселя и шахматной доски
У инструмента Magic теперь есть «пиксельные» параметры, которые упрощают создание пиксельной графики в стиле ретро-игр. Он не дает возможности полноценного пиксельного инструмента, такого как Pixelorama, но пикселирование доступно как опция.
Существует также опция шахматной доски, которая заполняет весь холст контрольным узором, а опция «Клонировать» позволяет дублировать части изображения с помощью мазков кисти.
Улучшения специальных возможностей
В новой версии добавлены две опции доступности. Теперь весь пользовательский интерфейс Tux Paint можно увеличить. Это принесет пользу пользователям с ослабленным зрением. Это также сделает программу более подходящей для дисплеев с очень высоким разрешением HiDPI.