Обновить
18

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

SVG и компания

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

Когда хочется красивый GUI, а gpu нет

Время на прочтение3 мин
Количество просмотров18K
Обычно для рабочих утилит не требуется вменяемый UI, с кнопками, списками, окнами, поддержкой мыши и прочей мелочевкой, большинство рабочих «хотелок» можно упаковать в скрипты и иногда запускать их с параметром --help, и так будет даже правильней с точки зрения настройки и масштабирования. Все становится хуже, когда тулами начинают пользоваться не только команда разработки, но и сторонние люди. А они не всегда готовы вникать в стройные мысли, уложенные в строчки кода. И тогда приходится городить UI, а он у разработчиков выходит обычно простой, квадратный, функциональный и совсем скучный. Некоторое время назад я работал над небольшой системой управления вентиляцией/обогрева/камерами и еще того «что придумает вон тот дядечка в желтой каске» для подземной автостоянки.


Читать дальше →

Рендеринг текста вас ненавидит

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

Рендеринг текста: насколько сложным он может быть? Оказывается, невероятно сложным! Насколько мне известно, буквально ни одна система не выводит текст «идеально». Где-то лучше, где-то хуже.

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

В общем, сразу скажем: здесь нет последовательных правильных ответов, всё намного важнее, чем вы думаете, и всё влияет на всё остальное.

Мы обсудим темы, которые не объединяются в рамках какой-то единой концепции, это просто вопросы, с которыми мне пришлось столкнуться за несколько лет работы над рендерингом текста в Firefox. Например, не будем слишком подробно обсуждать проблемы сегментации текста или управления различными текстовыми библиотеками для конкретной платформы, поскольку этим я не слишком интересуюсь.
Читать дальше →

Как работает альфа-композитинг

Время на прочтение23 мин
Количество просмотров25K
image

Возможно, прозрачность не кажется какой-то интересной темой. Формат GIF, позволявший некоторым пикселям просвечивать сквозь фон, опубликован более 30 лет назад. Почти в каждом приложении для графического дизайна, выпущенном за последние два десятка лет, поддерживается создание полупрозрачного контента. Эти понятия давно перестали быть чем-то новым.

В своей статье я хочу показать, что на самом деле прозрачность в цифровых изображениях намного интереснее, чем кажется — в том, что мы воспринимаем как нечто само собой разумеющееся, есть невидимая глубина и красота.
Читать дальше →

Анимация в программе Asymptote

Время на прочтение25 мин
Количество просмотров1.8K
Скопировано с моего блога в целях создания еще одного русскоязычного источника информации по данной теме.

Здравствуйте! Когда я в процессе освоения программы Asymptote, происходившего по мере узнавания нюансов настройки этой прогры, описанных вот в этом хабе, полностью освоил обработку файлов .asy, в которых нет анимации, я, естественно, попер на анимацию.

Заголовок спойлера
Даешь анимацию в народные массы!

К счастью, для этого в случае формата выхода .pdf ничего из описанных мной дополнительных прогр в хабе по приведенной мной выше ссылке после прогры ghostscript доустанавливать не нужно, а так бы еще черт знает сколько времени прокопался. Но я об этом тогда не знал, что многократно усложняло дело. Обработаешь файл wheel.asy и что? Ну, появлялось .pdf при обработке в TeXworks (см. данный по ссылке выше хаб) в одной папке с обрабатываемым файлом .asy, а при открытии в проводнике (см. тот же хаб) — в папке C:\Windows\System32. Ну и что? Анимации в нем не было и все тут, хоть ты тресни. А до анимации в Asymptote я научился делать анимации в tikz и pstricks. Так у меня с этим не получалось до тех пор, пока я из папки C:\Program Files\MiKTeX 2.9\tex\latex\animate не удалил файл animate.sty и не поставил на его место файл с таким же названием, скачанный позже. Вот он. Таким образом, зная, что этот
Читать дальше →

Настройка программы Asymptote

Время на прочтение7 мин
Количество просмотров2.7K
Из всех хабов этот показался мне наиболее подходящей для этой темы. Итак.

Скопировано с моего блога в целях создания еще одного русскоязычного источника информации по данной теме.

Я опишу этот процесс для Asymptote 2.35. Итак, вот я скачал эту программу, установил. Если мы хотим использовать эту программу в полном объеме, то следующий шаг для этого — соединение ее с $\TeX$ (я делаю описание для используемой мной реализации $\TeX$'a — MiKTeX2.9, предполагая, что эта программа установлена и настроена должным образом: к ней подключен репозиторий, выбрана установка пакетов на лету, и т. д.). Я предполагаю, что в процессе установки Asymptote и MiKTeX папки, в которых предлагалось установщиками этих программ создавать файлы этих программ, не изменялись пользователем. Тогда открываем папку C:\Program Files\Asymptote, в ней находятся файлы asycolors.sty и asymptote.sty. Открываем папку C:\Program Files\MiKTeX 2.9\tex\latex, создаем в ней папки asycolors и asymptote и копируем в эти папки одноименные файлы sty, названные выше. Не забываем пройти Пуск>MiKTeX2.9>Maintenance (Admin)>Settings (Admin) и там последовательно нажать Refresh FNDB, Update Formats, Ok. Все, Asymptote знает, где находится TeX.
Читать дальше →

SVG в реальной жизни. Доклад Яндекса

Время на прочтение7 мин
Количество просмотров16K
Привет, меня зовут Артём, я руководитель одной из групп разработки интерфейсов в Яндексе. Неделю назад на Я.Субботнике я рассказал, как мы использовали SVG для создания внутреннего календаря. Это расшифровка моего доклада, несколько историй из реализации виджета календаря: масштабирование, заливка паттерном, маски, символы и особенности формата.



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

Читать дальше →

Industry Foundation Classes. Краткое введение

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

Введение


В связи с политикой Партии и Правительства, происходит активное изменение законодательства в целях внедрения технологии BIM — Информационное моделирование Зданий. В продолжении линии Партии рассмотрим открытый формат представления BIM — IFC (Industry Foundation Classes).

Читать дальше →

Luxor

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

Сегодня мы рассмотрим графический пакет для языка Julia, который называется Luxor. Это один из тех инструментов, которые превращают процесс создания векторных изображений в решение логических задачек с сопутствующей бурей эмоций.


Осторожно! Под катом 8.5 Мб легковесных картинок и гифок изображающих психоделические яйца и четырехмерные объекты, просмотр которых может вызвать лёгкое помутнение рассудка!

Читать дальше →

Looper — Плагин для Sketch

Время на прочтение2 мин
Количество просмотров3.6K
Looper генерирует паттерны. С помощью Looper я делаю фоны. Паттерн генерируется многократным дублированием заготовки с изменениями от копии к копии. Заготовкой может любая фигура или их комбинация.



Гляньте короткое видео, как работает с плагин.
Читать дальше →

Делаем ретро-игру из 80-х или как готовить макеты для лазерной резки

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


Хабр, привет! Так получилось, что меня давно просили сделать старую настольную игру из СССР — «Сражение». Вот пришло время выполнять обещание, заодно решила показать как создавать макеты для лазерной резки и что получается в итоге. Большой сложности в этом нет, но есть некоторые нюансы.

Много статей хабра по теме DIY содержит жалобы: на отсутствие навыков работы с лобзиком, малую жесткость картона, сложности с созданием корпуса. Каждый сам выбирает способ реализации своих идей, но мне важно показать как легко можно сделать макет в том же Inkscape, отдать его в работу и получить готовые детали.
Читать дальше →

Как начать программировать в Adobe Illustrator. Часть вторая

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

Этот пост — продолжение первой части, где был представлен скрипт Expand Clipping Mask и детально описано, что и как он делает, а также попутно рассмотрены основные принципы создания подобных программ в целом. В этой части я продолжу рассказ о том, как добавить в программу новый функционал, чтобы из "заготовки" получить на выходе "готовое изделие". Здесь не обойтись без более глубокого погружения в предметную область, что является одним из необходимых условий создания полноценного продукта. Итак, начинаем погружение!


Читать дальше →

Как начать программировать в Adobe Illustrator. Часть первая

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

Сразу хочу предупредить, что эта серия постов не для матёрых программистов и даже не для программистов вообще. Понимаю, что это звучит крайне вызывающе, учитывая IT-тематику ресурса, и все же позвольте объяснить… В качестве аудитории, я вижу обычных дизайнеров, которые хотели бы начать программировать в среде Adobe, но по каким-то причинам (из-за страха перед неизвестным, неуверенности в своих возможностях или незнания языка) не могут сделать первые шаги в данном направлении. Свою скромную задачу вижу в том, чтобы помочь им понять, что "не боги горшки обжигают" и любой, достаточно мотивированный человек, может научится писать работающий программный код. Вполне возможно, некоторые из них так увлекутся этой игрой, что решат стать настоящими разработчиками. Чем код не шутит?


В этом посте будет рассказано о том, как посредством написания небольшой программы (скрипта на JavaScript) создать свой уникальный инструмент в Adobe Illustrator, который позволит не только сократить ваше время, но и улучшить взаимодействие с этим замечательным графическим редактором. Сначала я сформулирую задачу, затем покажу код, который ее решает и, далее, подробно расскажу о том, как он создавался. Здесь не будут обсуждаться основы Javascript, особенности объектной модели Illustrator или различные редакторы для написания/отладки кода. Эту информацию вы сможете при желании найти сами. Главное, на мой взгляд, это понимание базовых принципов написания программ, на что и делается основной упор в этой статье. Если вы готовы прыгнуть чуть выше своей головы, добро пожаловать под кат!


Читать дальше →

Почему векторная графика 2D намного сложнее, чем 3D

Время на прочтение13 мин
Количество просмотров20K
В последнее время появилось много фантастических исследований по 2D-рендерингу. Пётр Кобаличек и Фабиан Айзерман работают над Blend2D: это один из самых быстрых и точных CPU-растеризаторов на рынке, с инновационной техникой JIT. Патрик Уолтон из Mozilla изучил не один, а три разных подхода в Pathfinder, кульминацией чего стал Pathfinder v3. Раф Левиен построил вычислительный конвейер по технологии, описанной в научной статье Гана с коллегами о векторных текстурах (2014). Похоже, некое дальнейшее развитие получают поля расстояний со знаком: здесь независимо работают Адам Симмонс и Сара Фрискен.

Кто-то может спросить: а почему вокруг 2D так много шума? Это ведь не может быть намного сложнее, чем 3D, верно? 3D — совершенно другое измерение! Тут у нас на носу трассировка лучей в режиме реального времени с точным освещением, а вы не можете осилить невзрачную 2D-графику со сплошными цветами?

Для тех, кто не очень хорошо разбирается в деталях современного GPU, это вправду очень удивительно! Но в 2D-графике множество уникальных ограничений, которые чрезвычайно её усложняют. К тому же она не поддаётся параллелизации. Давайте прогуляемся по исторической дорожке, которая нас сюда привела.
Читать дальше →

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

Все об SVG анимации

Время на прочтение41 мин
Количество просмотров181K
В данной статье я хочу осветить тонкости работы с SVG-графикой, SVG анимацию (в том числе и path), проблемы и способы их решения, а также разнообразные подводные камни, коих в SVG огромное множество. Эту статью я позиционирую как подробное руководство.



Здесь не будет никаких плагинов, библиотек и прочего, речь пойдет только о чистом SVG.
Единственный инструмент, который я буду использовать, это Adobe Illustrator.
Получить сакральные знания

Построение металлической площадки на свайном фундаменте в СПДС Металлоконструкции

Время на прочтение2 мин
Количество просмотров1.7K
Приглашаем вас принять участие в бесплатном вебинаре «Построение металлической площадки на свайном фундаменте в СПДС Металлоконструкции».

ЗАРЕГИСТРИРОВАТЬСЯ



25 мая состоится вебинар «Построение металлической площадки на свайном фундаменте в СПДС Металлоконструкции». Программа вебинара включает в себя демонстрацию новых возможностей программного продукта СПДС Металлоконструкции, предназначенного для автоматизации разработки проектно-конструкторской документации марок КМ и АС.
Читать дальше →

Проект организации строительства и реконструкции в стесненных условиях в СПДС Стройплощадка

Время на прочтение1 мин
Количество просмотров2.2K
Приглашаем вас принять участие в бесплатном вебинаре «Проект организации строительства и реконструкции в стесненных условиях в СПДС Стройплощадка».

ЗАРЕГИСТРИРОВАТЬСЯ



29 мая состоится вебинар «Проект организации строительства и реконструкции в стесненных условиях в СПДС Стройплощадка», в рамках которого будут показаны уникальные методы создания стройгенплана в программе в СПДС Стройплощадка, когда строительство здания ведется в условиях плотной застройки и развитой инфраструктуры.
Читать дальше →

Тест-драйв nanoCAD СПДС Стройплощадка 8. Часть 2

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

Тест-драйв nanoCAD СПДС Стройплощадка 8


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

Читать дальше →

Тест-драйв nanoCAD СПДС Металлоконструкции 1.2. Часть 3

Время на прочтение8 мин
Количество просмотров1.7K
Продолжаем публиковать тест-драйв по nanoCAD СПДС Металлоконструкции. В первой части тест-драйва мы начали строить каркас производственного. Во второй части мы рассмотрели, как создавать вертикальные связи, распорки, прогоны и размещать их на плане, а также создадим поперечный разрез. В заключительной части мы рассмотрим как создавать продольный разрез, создание узлов, компоновку чертежей на формате листа и создание спецификаций.

Читать дальше →

Тест-драйв nanoCAD СПДС Стройплощадка 8. Часть 1

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

Тест-драйв nanoCAD СПДС Стройплощадка 8


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

Читать дальше →

Создание металлической фермы в СПДС Металлоконструкции

Время на прочтение2 мин
Количество просмотров2.4K
Приглашаем вас принять участие в бесплатном вебинаре «Создание металлической фермы в СПДС Металлоконструкции».

ЗАРЕГИСТРИРОВАТЬСЯ



Вебинар состоится 23 апреля в 11:00 по Москве. Программа вебинара включает в себя демонстрацию новых возможностей программного продукта СПДС Металлоконструкции, предназначенного для автоматизации разработки проектно-конструкторской документации марок КМ и АС.

Цель вебинара – продемонстрировать пользователям САПР, как повышается эффективность работы инженеров-конструкторов при использовании специализированного программного обеспечения СПДС Металлоконструкции. В рамках вебинара будут продемонстрирован новый функционал программы, а именно, новая команда по созданию свай различного назначения.
Читать дальше →

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