Как стать автором
Поиск
Написать публикацию
Обновить
10.95

Векторная графика *

SVG и компания

Сначала показывать
Порог рейтинга
Уровень сложности

Математика и веб-разработка: как мы добавили интерактивную кривую Безье в редактор изображений

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.1K

Добрый день, меня зовут Богдан, я фронтенд-разработчик в компании iSpring. В статье расскажу про интерактивную стрелку в редакторе изображений. Вы узнаете: как строятся кривые Безье и какие полезные свойства имеют; как вычислить кривую Безье, проходящую через заданные точки; как найти ограничивающую площадь этой кривой. Рассмотрим плюсы и минусы реализаций на Canvas и SVG.

Читать далее

Новости

Ретроспектива дизайна детских книг в России (первая половина XX века)

Время на прочтение5 мин
Количество просмотров4.8K

В начале XX века происходят коренные изменения в социальной психологии. И это связано не только с подъёмом социалистических идей (об этом мы поговорим в следующей статье), но так же и с коренными изменениями в обществе, новаторским взглядом на привычные вещи. Одним из самых удивительных событий, о котором многие даже не задумываются, является повторное изобретение человечеством детства. Вы не ослышались. Сотни лет в феодальном и раннем промышленном обществе дети в возрасте старше 5–6 лет воспринимались, как «недоразвитые» взрослые. Если мы говорим о крестьянских семьях, как только ребёнок мог работать в поле, мог выполнять обязанности по дому, мог обучаться у мастера — он начинал буквально окупать собственное пропитание. Снисхождений по возрасту больше не существовало. Конечно, никто не воспринимал ребенка, как самостоятельного человека, хотя некоторые поступки малолетних детей сегодня воспринимались бы, как катастрофически ранние. Существуют достоверные истории о том, как сироты с 8 лет могли зарабатывать на улице и обеспечивать себе пропитание сами, а то и пропитание младшим братьям и сёстрам. В крестьянском мышлении подобное оправдывалось очень просто: если ребенок начинает питаться, как взрослый, то и работать он тоже должен не меньше взрослого. Аналогичная ситуация проявлялась и в более высоких сословиях. Правда, у детей аристократов были в запасе 2–3 «капризных» года, когда родители могли позволить ребенку еще поиграть в куклы и солдатики. Тем не менее, в скором времени мальчиков уже начинали строго готовить к армейской службе, а девочек к замужеству.

Читать далее

Как нарисовать космического захватчика

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров4.1K

Недавно я написал Space Invader Generator в рамках соревнований по кодингу Creative Coding Amsterdam. Разумеется, я сделал это ради развлечения... но и для господства над галактикой тоже! На скриншоте показано, как он выглядит, а в посте я объясню, как он работает.

Читать далее

GIMP Script-Fu ООП. Встраиваем векторы в систему классов Фигур и все Фигуры в язык Функциональной геометрии

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров571

Библиотека функций к Script-fu

В предыдущей статье мы рассмотрели имеющиеся в GIMP возможности векторной графики. Здесь мы рассмотрим как эти возможности использовать при построении графических примитивов — Фигур. Для построения абстракций фигур мы уже написали несколько классов: Фигуры рисуемых по контуру Кистью и Карандашом, Фигур заполняемых определённым цветом, Комбинированных Фигур, Фигур использующих Изображения и Фигур использующих Текст. Здесь я продемонстрирую, как легко и непринуждённо мы можем встроить новые абстракции в существующую иерархию классов. А заодно рассмотрим как вся эта иерархия классов может использоваться в языке функциональной геометрии, рассмотренном в предыдущем цикле статей.

Читать далее

GIMP Script-Fu ООП. Векторы

Время на прочтение10 мин
Количество просмотров544

Библиотека функций к Script-fu

Когда то, очень давно, считалось что графические редакторы делятся на растровые и векторные. К векторным относились Coreldraw Adobe Illustrator Inkscape и работали они не с отдельными пикселами изображений, а с элементами называемыми векторами, которые можно превращать, с помощью манипуляций в дуги различной формы, называемыми кривыми Безье. К растровым же относились Photoshop Paint и тот же GIMP. В этих редакторах отсутствовала какая либо геометрия и изображения представляли собой наборы отдельных точек - пикселов. Но время не стоит на месте и элементы растрового редактирования проникали в редакторы, которые считались векторными и наоборот, элементы векторных редакторов переносились в растровые графические редакторы. Примером тому является GIMP.

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

Читать далее

Как это сделано: криптоколлекция Angry!Kids

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров715

Всем привет! Меня зовут Денис Ланин, я один из старших дизайнеров в Юзтехе. В этой статье я поделюсь опытом проектирования своей криптоколлекции Angry!Kids. Хотя она пока так и не увидела свет (и, скорее всего, никогда не увидит), этот проект подарил мне бесценный опыт и прокачал навыки. Здесь расскажу о пути проектирования, возникавших проблемах, способах их решения и том, как всё это повлияло на меня как на специалиста.

Статья будет полезна продуктовым дизайнерам, digital-художникам, NFT-разработчикам, а также всем, кто работает с цифровыми коллекциями или интересуется созданием похожих цифровых проектов. Приятного чтения!

Читать далее

Дизайн на салфетке · Логотомия «Пчелошеринга» — пошаговое руководство с картинками №1

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.3K

Мама хотела чтобы я играл на фортепиано и стал пластическим хирургом. Я — закончил музыкалку по классу гитара, выучился на инженера-эколога и пошел в школу преподавать черчение и тренировать баскетбольную команду. Всё это время параллельно я работаю дизайнером на фрилансе — и сегодня на операционном столе «Пчелошеринг». Слабонервным дизайнерам и пчёлам вход воспрещен, остальным — добро пожаловать на вскрытие.

Читать далее

Дружеское знакомство с SVG

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров4.9K

SVG – одна из самых интересных технологий браузера. С его помощью можно делать массу полезных и интересных компонентов. Это неотъемлемая часть моего стека.

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

Для понимания этой статьи не требуется специальных знаний и опыта работы с SVG, но предполагается, что вы знакомы с основами HTML/CSS/JS.

Читать далее

Еще раз об SVG-виджетах в tcl/tk

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.8K

После выхода первой статьи про svg-виджеты для tcl/tk прошло более года. За это время вышел не только tcl/tk версии 9.0, но и сам пэт-проект возмужал и продолжает взрослеть. Напомним, что проект svgwidgets, примеры и интерпретаторы tcl/tk с необходимыми пакетами для работы с svg-виджетами можно найти на github.
В проекте svgwidgets на github-е можно найти версию интерпретатора tclexecomp как для linux64 (папка tclexexcomp902), собранного из исходников tcl/tk-9.0.2, так и версию интерпретатора на базе tcl/tk-8.6 для платформ Linux64 и Win64 (папка tclexecomp200).
К ранее созданному на github-е подкаталогу examples/CryptoArmPKCS_Test, в котором выложен исходный код криптографической утилиты для работы с электронной подписью cryptoarmpkcs, который предназначен для запуска на платформе Linux64 в среде tcl/tk-9, добавлены аналогичные папки для запуска утилиты cryptoarmpkcs в среде tcl/tk-8.6 на платформах Linux64 (папка examples/CryptoArmPKCS_Test_Tk86) и Win64 (папка examples/CryptoArmPKCS_Test_Tk86_Win64). Для запуска этой утилиты ничего дополнительного устанавливать на свой компьютер не требуется. Достаточно выбрать соответствующий интерпретатор из папки tclexecomp200 или tclexexcomp902 и выполнить файл mainguipkcs_svg.tcl из соответствующей папки ~/examples/CryptoArmPKCS_Test, например:

C:>C:\Temp\tclexecomp64_v200_svg_Win64.exe c:\Temp\CryptoArmPKCS7_Test_Tk86_Win64\mainguipkcs_svg.tcl

Читать далее

Ротоскопирование унижает нейросети, или как технология древности поможет улучшить арт для вашей игры

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.3K

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

Читать далее

Совмещаем Libre Office и LaTeX

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.3K

Использование векторной графики LaTeX Pgf/TikZ в документах, создаваемых с помощью Libre Office / Open Office

Читать далее

Earcut на битах

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.9K

Earcut - базовый, почти учебный алгоритм триангуляции, но при некоторых раскладах он обгоняет более "продвинутые" решения.

Ампутировать

Делаем ландшафт на основе реальных данных

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров5.4K

Я долгое время занимаюсь построением 3D копий городов в проприетарном игровом движке на основе картографических данных. Суммарно это сложная задача, успех выполнения которой заключется в решении небольшого набора больших проблем. Одной из таких проблем является отрисовка точного ландшафта на основе реальных данных. Далее я постараюсь расказать обо всех R&D этапах и технических особенностях, с которыми пришлось столкнуться, а вконце будет несколько сравнений сгенерированного ландшафта с фотографиями реальных мест.

Читать далее

Ближайшие события

Tcl/Tk. SVG-виджеты. Генератор градиентной заливки

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.1K

После серии статей про svg-виджеты в tcl/tk, меня не оставляло чувство какой-то незавершенности. Всматриваясь в проект svgwidgets, стало понятно, что не хватает утилиты с удобным интерфейсом для генерации градиентной заливки.

Читать далее

Простая отрисовка емодзи в атлас из таблицы .ttf (NotoColorEmoji)

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров567

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

В этой статье рассмотрим возможно самый простой способ рисования всех емодзи из шрифта NotoColorEmoji.ttf.

Читать далее

Как технология Neural Rendering от NVIDIA улучшает качество графики в играх: нейросети на службе у трассировки лучей

Время на прочтение6 мин
Количество просмотров3.7K

Помните, как мы когда-то удивлялись первым пиксельным шейдерам, считая их вершиной технологического прогресса? А потом появился рей-трейсинг, и наши представления о возможностях графических процессоров снова изменились. Сегодня же мы находимся на пороге нового переворота в мире компьютерной графики. Инновационная разработка NVIDIA под названием Neural Rendering соединяет традиционные алгоритмы визуализации с возможностями искусственного интеллекта, закладывая основу принципиально иного подхода к созданию виртуальных миров.

Читать далее

Способы создания пользовательских компонентов в QML

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров2.3K

Qt Quick и QML - мощные инструменты для создания графических интерфейсов. Но многообразие способов, которыми можно это сделать, может сбить с толку. В этой статье я постараюсь систематизировать информацию о всех, известных мне способах создания пользовательских компонентов в QML на примере круга.

Также одним из условий будет, чтобы внешний вид полученных элементов можно было редактировать в QtCreator.

Все исходники в репозитории.

Читать далее

SVG-виджеты и tcl/tk-9.0

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.4K

Работая над проектом «SVG-виджеты для tckl/tk», я с нетерпением ждал выхода не только релиза Tcl/Tk-9.0, но и выхода интерпретатора tclexecomp с его поддержкой. Релиз Tcl/Tk-9.0 появился в сентябре 2024 года, когда работа над проектом приближалась к завершению. После выхода релиза Tcl/Tk-9.0.0, сразу же появилось желание протестировать свой проект с новым интерпретатором, но я решил дождаться появления и интерпретатора tclexecomp с поддержкой нового релиза Tcl/Tk.
Время шло, на Хабре была выложена финальная статья про svg-виджеты, а tclexecomp на базе Tcl/Tk-9.0 так и не появлялся. В настоящее время уже вышел второй релиз, а именно Tcl/Tk-9.0.1. И тогда было решено воспользоваться советом Ивана Владимировича Мичурина:

Читать далее

Компенсация уменьшения размеров изображения при повороте и отображении с помощью функции QPainter drawPixmap

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров553

Столкнулся с интересным результатом при прорисовывании в QPainter квадратного изображения QPixmap с помощью функции drawPixmap. После поворота изображение уменьшалось. Результат представлен на рисунке.

Читать далее

Принципы минимализма в UX/UI: парадокс «меньше — значит больше»

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.2K

Привет, Хабр. Я Илья Сластен, продуктовый дизайнер интерактивной карты ПГК Диджитал. В своей предыдущей статье я рассмотрел ключевые аспекты работы с локальными переменными в Figma и подход Atomic Design. Сегодня предлагаю поговорить о минимализме в дизайне.

В мире, где цифровая реальность меняется стремительно, а каждый клик важен, создание успешных веб-сайтов и приложений становится задачей, от решения которой зависит многое. Говоря о самых успешных подходах, минимализм в дизайне выходит на передний план. Это не просто эстетический выбор, это философия, которая стремится к ясности, эффективности и функциональности. Как же принцип «меньше — значит больше» помогает нам создавать более удобные и интуитивно понятные интерфейсы? Давайте разберемся.

Читать далее
1
23 ...

Вклад авторов