Безье
Анимированный UI: как улучшить взаимодействие с пользователем
Анимация пользовательского интерфейса прошла долгий путь за последнее десятилетие, они превратились в универсальный цифровой язык, который люди узнают и понимают. Эти микровзаимодействия позволяют дизайнерам общаться с пользователями посредством движения и анимации, предоставляя им рекомендации, контекст и создавая захватывающий пользовательский опыт. В продакшене анимация всегда балансирует между...
Direct2D #5. Продолжение темы геометрии ID2D1Geometry и дочерние классы
Возвращаемый тип HRESULT название GetBounds: Назначение: Описывает геометрию квадратом(внешним) или прямоугольником без учёта обводки Аргументы: const D2D1_MATRIX_3X2_F* worldTransform - матрица преобразования(может быть nullptr). D2D1_RECT_F* bounds - результат функции. Возвращаемый тип HRESULT название GetWidenedBounds: Назначение: Описывает геометрию квадратом(внешним) или прямоугольником с учё...
Direct2D #4 Графика. Введение
Вступительное слово. В данной статье рассмотрю начало работы с графикой, а именно что нужно сделать, чтобы вывести геометрию любой сложности (в рамках 2D) и любого цвета. Всё остальное рассмотрим дальше, в следующих статьях. Из прошлых статей известно, что есть клиентская область окна, где у нас полная власть над содержимым, и неклиентская, где тоже власть, но меньше. А отсюда можно легко прийти к...
[Перевод] Кому нужен Graphviz, если можно написать его самому?
Недавно мы переделали наши внутренние инструменты, визуализирующие компиляцию JavaScript и WebAssembly. При работе оптимизирующего компилятора Ion мы теперь можем генерировать интерактивные графы, демонстрирующие, как конкретно обрабатываются и оптимизируются функции. Вы можете сами поэкспериментировать с этими графами в оригинале статьи. Просто введите какой-нибудь код на JavaScript в функцию tes...
Математика и веб-разработка: как мы добавили интерактивную кривую Безье в редактор изображений
Добрый день, меня зовут Богдан, я фронтенд-разработчик в компании iSpring. В статье расскажу про интерактивную стрелку в редакторе изображений. Вы узнаете: как строятся кривые Безье и какие полезные свойства имеют; как вычислить кривую Безье, проходящую через заданные точки; как найти ограничивающую площадь этой кривой. Рассмотрим плюсы и минусы реализаций на Canvas и SVG. Редактор изображений явл...
Рецидивирующий афтозный стоматит: от вавки — до цыпки
Это афта. Это не герпес. Если лечить одно как другое — всё закончится плохо. Пациент старательно держит свою губу, чтобы посреди ночи прислать фото стоматологу. Пациенты часто искренне очень стараются как можно лучше описать доктору своё состояние. Любой начинающий стоматолог бывал смущён выражениями типа «А у меня неправильный привкус?», «Депультируйте мне зуб» и «Если есть верхнее нёбо, то значи...
GIMP Script-Fu ООП. Векторы
Библиотека функций к Script-fu Введение Нет в этой статье я не буду рассказывать о классах "Вектор", темой моего рассмотрения будет графический элемент изображения в GIMP, под названием vector и его составляющие под названием stroke. Когда то, очень давно, считалось что графические редакторы делятся на растровые и векторные. К векторным относились Coreldraw Adobe Illustrator Inkscape и работали он...
Бюст Анны Политковской установлен во французском городе Безье
Вчера в небольшом французском городе Безье был установлен бюст погибшей российской журналистки Анны Политковской. Церемония прошла в Национальный день Сопротивления — 27 мая. Эта дата связана с первым заседанием Национального Совета Сопротивления во Франции в 1943 году. При открытии памятника мэр города,один из основателей международной организации «Репортеры без границ», Робер Менар отметил важно...
[Перевод] Генерация PDF документов в Lazarus IDE
Для разработки различных заглушек, используемых для тестирования сервиса, пока не готова ответная часть, я иногда использую отрисовку нужной информации на Canvas PaintBox`а, и последующую генерацию PDF с отрисованной картинкой (сохраняю BMP в поток, затем загрузка из потока для размещения изображения в PDF) и дополнением документа текстовой информацией. Для реализации такого подхода я использую мо...
Как создать форму текстового фона в Jetpack Compose
Рассмотрим, как создать форму текстового фона в Jetpack Compose. Такая форма поможет творчески подойти к улучшению внешнего вида текста в различных сценариях, о которых поговорим в последнем разделе. Подготовка Прежде чем приступить к реализации, обсудим некоторые подготовительные моменты. TextShapeCorners Этот интерфейс задает радиус кривых фигуры либо в dp (Fixed), либо относительно высоты линии...
Глассморфизм и SVG
Всем привет. Я Андрей Осипов, фронтендер из Контура. Почти три года назад, когда у компании был еще старый фирменный стиль, мы столкнулись с проблемой экспорта из фигмы изображений в формате SVG. Сложность была с изображениями, где был эффект глассморфизма, он же эффект матового стекла (frosted glass). Недавно чисто из любопытства я решил проверить, починили ли в Figma эту проблему. Проблема остал...
Проверка содержимого PDF-файлов средствами Python и pdfminer. Часть 1
Некоторое время назад у нас появился интересный проект по созданию сервиса, генерирующего документы в формате PDF. И появилась задача — написать тесты, которые проверят документ в мельчайших деталях, включая и содержимое, и вёрстку. В данной статье мы расскажем, каким образом справились с этой задачей. Начальные условия Когда мы впервые показывали этот материал людям, не знакомым с проектом, часто...
Композим иконки. Улучшаем семантику и скорость отрисовки
Привет! Меня зовут Алексей, я работаю Android-разработчиком в Облаке Mail. Наша команда отвечает за возвращаемость пользователей в сервис. Чтобы сделать использование Облака приятным и удобным, мы проводим редизайн приложения, переписывая старый пользовательский интерфейс на Jetpack Compose по новым макетам. Для упрощения создания новых экранов мы разрабатываем UI Kit с готовыми Composable-компоне...
Технологии создания трёхмерных моделей
В настоящее время ведущими трёхмерными редакторами на рынке являются: Autodesk 3Ds Max; Blender; Autodesk Maya; Cinema 4D; Zbrush. Большинство программ трёхмерного моделирования обладают крайне широким спектром функций, начиная от создания моделей и заканчивая анимацией и визуализацией. Autodesk 3Ds Max Autodesk 3ds Max представляет собой трёхмерное приложение, которое позволяет создавать модели,...
[Перевод] Эй, компьютер, создай-ка мне шрифт
Это история о том, как я с нуля осваивал создание генеративных моделей МО, попутно обучая компьютер создавать шрифты. Да, настоящие типографские шрифты, состоящие из набора заглавных глифов. Созданная мной модель получает на входе описание шрифта и создаёт на выходе файл с их готовым набором. Назвал я свой проект FontoGen. Выше вы видите несколько примеров шрифтов, сгенерированных моделью FontoGen...
Математика прекрасного. Как создать красивую картинку, если ты дилетант, художник или нейросеть?
Привет, Хабр, я Павел Бузин, работаю аналитиком в компании Cloud.ru и занимаюсь решением задач, требующих применения различных математических методов, в том числе используемых для машинного обучения. С появлением нейронных сетей почти каждый может попробовать себя в роли художника или дизайнера. Уверен, что будет неплохо максимально простым языком рассказать, каких правил стоит придерживаться, что...
Интерполяция: рисуем плавные графики с помощью кривых Безье. Версия 2
Доброго времени суток, харбачитатель. Так начинается статья, которая представляет сообществу первый, опубликованный здесь, алгоритм интерполяции: В этой статье мне хотелось бы рассказать об одном придуманном алгоритме (или скорее всего — переизобретённом велосипеде) построения плавного графика по заданным точкам, используя кривые Безье. Статья была написана под влиянием вот этой статьи... Дело в т...
Шрифт на кривых Безье на микроконтроллере
Идея Идею подсмотрел в канале о программировании ESP32, один человек продемонстрировал часы на 6 дисплеях. Каждая цифра на своём дисплее типа 1.8" 128х160. Разработчик проекта показал источник своего вдохновения: проект Bézier Clock на Javascript разработчика Jack Frigaard. К сожалению, видимо, ориганальная страница демонстрационного проекта не сохранилась, но она точно вдохновила разных людей. Ес...
SwiftUI уроки (часть 7)
ссылка на 6ю часть Рисуем линии, дуги, диаграммы В этом разделе вы узнаете, как рисовать линии, дуги и диаграммы с помощью Path и встроенных форм, таких как Circle и RoundedRectangle, в SwiftUI. Вот что мы изучим: * Понимание Path и рисование линий * Что такое протокол Shape и как нарисовать настраиваемую форму путем соответствия протоколу * Рисование диаграммы * Создание индикатора прогресса с по...
[Перевод] Как создать собственный шрифт
В этом месяце я решил узнать, как создать шрифт, который буду использовать в своём комиксе hakum. Раньше я рисовал текст в цифре на своём планшете. Результат оказывался хорошим, но иногда трудночитаемым (размер текста часто скакал на одной странице). Мне не хотелось использовать готовый шрифт, поэтому я решил создать собственный на основе своего рукописного текста. Шрифт повысит читаемость текста...
Математическая продлёнка. Это же элементарно, Ватсон?
Какие функции принято называть элементарными и почему? И при чём тут Ватсон? Разберёмся со всем по порядку. Обещаю, будет понятно и интересно, хоть и не совсем элементарно. Когда я был школьником, то моим хобби была охота за функциями, для того чтобы рисовать на миллиметровке их графики, собирая своеобразную коллекцию. Тогда я был вооружён мощным оружием: калькулятором МК-52. До компьютера с графи...
Road Run, или как я свою первую игру делал. Часть 4
Одних домов для игры недостаточно, пейзаж с плотной застройкой не особо разнообразен, да и для глаза сильно приятен. Кроме того, большинство реальных улиц имеют те или иные зелёные насаждения. В общем, озеленение улиц - это хорошо, как с экологической точки зрения, так и с эстетической. Генератор деревьев Как же лучше решить решить задачу озеленения? В игре решено было использовать малополигональн...
От Татарки до Безье: что происходит с наследием ставропольского художника Павла Гречишкина
Наследие пейзажиста из Татарки Пейзажист Павел Моисеевич Гречишкин родился 16 января 1922 года в селе Татарка на Ставрополье, а умер 3 июля 2009 года в 87 лет. В 1987 году он подарил Ставрополю 167 своих полотен, в краевой столице открыли картинную галерею дарственных пейзажей художника. Постепенно коллекция живописи пополнялась, сейчас в ней порядка 500 работ, около 200 из которых одновременно вы...
Борьба с экскрементами! Паспорт с ДНК собаки поможет вычислить людей, которые не убрали за питомцем
Unsplash Теперь жителям города Базье, Франция, лучше дважды подумать, прежде чем оставлять собачьи экскременты на тротуаре. Хозяева домашних питомцев должны будут носить с собой генетический паспорт питомца, чтобы поддерживать чистоту на улицах города. Местный мэр Робер Менар, бывший журналист и соучредитель организации «Репортеры без границ», говорит, что жители и гости города устали от фекалий н...
Как рисовать красивые соединения с помощью SVG
Мы делаем систему симуляции различных процессов, в которой пользователь с помощью визуального программирования может описать и посмотреть, как работает тот или иной процесс. Иными словами, проверить, как на результат процесса влияют те или иные причинно-следственные связи. Вся система построена на нодах - наглядных представлениях функций, которые принимают, обрабатывают, показывают и в конце концо...