Как стать автором
Обновить
6.19

Работа с векторной графикой *

SVG и компания

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

Использование Manim + Python для визуализации. Перестановка (комбинаторика)

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

Несмотря на то, что математика сегодня — это глубокий андерграунд, работы 3Blue1Brown вдохновляют и пробуждают внутри что‑то из далёкого детства, где весь мир был непостижимой игровой площадкой, а из кислого были только муравьиные жопки. Чтобы хоть немного прикоснуться к прекрасному, мною была сделана попытка визуализировать простую формулу из комбинаторики. Делюсь опытом.

Читать далее
Всего голосов 6: ↑6 и ↓0+9
Комментарии1

Новости

Rive-анимация для Flutter-приложений: почему мы любим ее больше Lottie, когда ее применять и какие фишки использовать

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

Привет! Меня зовут Никита Грибков, я Flutter-разработчик в AGIMA. Расскажу вам про возможности Rive — фреймворка, который использует векторную графику для создания анимации во Flutter-приложениях. Эта статья выросла из небольшого поста на Хабре, в котором я коротко описал опыт работы над кнопкой для Bottom Bar в своем пет-проекте. Здесь же я уже подробно опишу, как анимировать элементы и чем вообще хорош Rive.

Читать далее
Всего голосов 6: ↑6 и ↓0+8
Комментарии2

SVG-виджеты для tcl/tk. Градиентная заливка и прозрачность. Часть II

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

Продолжим знакомство с svg-виджетами для tcl/tk. Напомним, что рассматриваемые примеры, сам пакет svgwidgets и интерпретаторы tcl/tk с необходимыми пакетами можно найти на github-е. После выхода первой статьи все они претерпели изменения. Начнем мы статью с примера скрипт_button_PACK.tcl:

$/usr/local/bin64/tclexecomp140_svg_Linux64 скрипт_button_PACK.tcl

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

Что такое трассировка лучей, как она устроена и так ли нужна на самом деле

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

Что самое главное в изображении? Конечно, его качество. Чем ближе к реальности выглядит объект на картинке, тем визуально привлекательнее он нам кажется. Во многом на восприятие изображения влияет освещение и затенение, которого в компьютерной графике помогает добиться трассировка лучей. О ней мы сегодня и поговорим.

Читать далее
Всего голосов 7: ↑3 и ↓4+2
Комментарии23

Истории

Анатомия игры: Локации. часть 2

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


В прошлой части мы начали разбирать по кирпичику такую часть геймизайна, как дизайн локаций. Разобравшись, чем отличается бесшовный мир от открытого и почему уровень называется уровнем, переходим к более насущным аспектам локаций.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+15
Комментарии1

Демо City In A Bottle – система рейкастинга в 256 байтах

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

Привет всем любителям size coding, сегодня я расскажу о чём-то потрясающем: крошечном движке трассировки лучей (raycasting) и генераторе города, умещающихся в автономном файле HTML размером 256 байтов.

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

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

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

Читать далее
Всего голосов 41: ↑38 и ↓3+56
Комментарии7

SVG-виджеты для tcl/tk. Часть I

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

Начать статью хочу с цитаты из слов Брайана Кернигана,которую мне посчастливилось найти:

Tcl/Tk придает работе магическую продуктивность, за несколько часов можно достигнуть тех же результатов, что за дни или недели при разработке на C или C++... Tk весьма эффективен для большинства приложений, многие элементы интерфейса (виджеты) реализованы настолько хорошо, что остается только удивляться, как подобная работа могла быть выполнена так качественно... Удачным кажется и то, что разделение задач между Тсl и С/С++ осуществляется достаточно легко, надо только знать, какой инструмент лучше справляется с задачей... Расширение системы дополнительным Tcl-кодом, загружаемым напрямую в Tcl-библиотеку приложения, в полном согласии с оригинальной идеей Остераута, повышает эффективность программы, в целом, упрощает ее структуру и улучшает мобильность... Я не уверен, что Тсl мог бы выжить как самостоятельный продукт - у него слишком много конкурентов. Но у сочетания Tcl/Tk в Unix-мире нет конкурентов... Система исключительно надежна, очень хорошо документирована... свободно доступна... безукоризненно высокого качества

Читать далее
Всего голосов 11: ↑8 и ↓3+11
Комментарии2

Вы думаете рисовать линии это просто?

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

Наш мир удивителен, простые на первый взгляд вещи оказываются очень сложными внутри. Так что же скрывает в себе обычная линия? Для ответа на вопрос, прошу под кат.

Читать далее
Всего голосов 60: ↑58 и ↓2+70
Комментарии39

Интерактивные и документированные диаграммы для сложных систем

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

Мой первый on-call выдался нелегким. Недели тренингов и обучения не подготовили меня к тому что придется бегать по Slack каналам различных команд и искать того, кто может что либо знать о какой-то из частей системы. Оказалось что многие страницы в корпоративной Wiki уже не обновлялись несколько лет. Команды хранили свою документацию кто где хотел: кто в Wiki, кто в Google Docs, кто в GitHub и т.д. Наш on-call был не идеален: 2 человека выходили на дежурство 24/7. Один был ответственен за всю инфраструктуру (MySql, Cassandra, Kafka, ElasticSearch, Nomad и т.д.), второй же был Developer on-call и отвечал за все микросервисы и различные легаси системы, что в сумме давало около 300 различных сервисов от 7 команд на самых различных стеках и фреймворках (Java, Scala, Node, Go). Но что меня больше всего раздражало - так это невозможность быстро оценить на высшем уровне как проходит и обрабатывается запрос от пользователя. Диаграммы для разных бизнес частей точно также были либо устаревшими, либо без прилегающей документации, либо для какой-то бизнес логики не было ничего. И вот тогда мне пришла идея, что было бы неплохо иметь диаграммы, в которых можно не только нажать на любой элемент и добыть о нем более детальную информацию, но также получить ссылки на другие диаграммы и динамически их подгружать. Мне хотелось иметь возможность быстро разобраться в неизвестной распределенной системе, не переключаясь между диаграммой и документацией в Google Docs или Wiki. Именно так я начал работать над проектом Schem.io.

Предупреждение: в статье содержится большое количество GIF-изображений.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии28

Как уменьшить вес продуктовой анимации в 400 раз (без AI)

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

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

В статье мы ответим на следующие вопросы: Какой формат анимации с растровыми элементами выбрать для использования в мобильном приложении? Как уменьшить вес файла и не потерять качество картинки? И как со всем этим связаны Lottie-анимации?

Читать гайд
Всего голосов 12: ↑8 и ↓4+9
Комментарии22

Станок с ЧПУ резка пенопласта. Руководство

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

Скоро весна и многие захотят украсить свой дом декором из пенопласта. А кто-то задумает утеплить свой дом, на характере переждав эту зиму. Ни чем я тут помочь не могу, дешевого способа тут не будет, а расскажу о резке пенопласта для тех, кто уже имеет станок с ЧПУ. Опишу несколько основных моментов для тех, у кого не получается.

Читать далее
Всего голосов 19: ↑12 и ↓7+11
Комментарии18

Без углов и стресса: Формула успешного дизайна, или как правильно скруглить внутренние углы фигур

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

Если вы новичок в дизайне, то наверняка могли заметить, что мелочи часто играют большую роль при создании композиции. Одна из таких мелочей – внутренние углы. В данной статье я рассказал, почему они важны и как сделать так, чтобы ваше закругление углов выглядело аккуратно.

Читать далее
Всего голосов 13: ↑5 и ↓8-1
Комментарии8

Игровая легенда из 90-х: Как работала 3dfx Voodoo «под капотом»? Пишем 3D-приложение с нуля на Glide

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


Полагаю, многие мои читатели так или иначе знакомы с такими видеокартами, как 3dfx Voodoo. Эти легендарные графические ускорители из середины\конца 90-х годов был чуть ли не в каждой второй сборке для игр, а о их производительности слагали легенды. До сих пор есть относительно небольшое сообщество фанатов ретро-игр, которые ценят, любят и собирают с цветмета те немногие видеокарты от 3dfx, что остались в СНГ. Однако обзоров на 3dfx Voodoo много, тестов игр — тоже, а вот материала «простыми словами» о его внутренней архитектуре и более того, практической части с написанием 3D-игры практически нет! Недавно я прикупил себе Voodoo 3, и начал зубрить Programmer's Manual с желанием запилить что-нибудь эдакое… Статью я долго и упорно готовил дабы успеть к новому году и сегодня у нас с вами: краткая история компании 3dfx, подробный разбор архитектуры видеочипов 3dfx «под капотом», что должен был уметь программист 3D-графики в 90х и написание 3D-приложения на Glide полностью с нуля. Интересно? Тогда жду вас в статье!
Читать дальше →
Всего голосов 62: ↑61 и ↓1+78
Комментарии49

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

Как создать собственный шрифт

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

В этом месяце я решил узнать, как создать шрифт, который буду использовать в своём комиксе hakum. Раньше я рисовал текст в цифре на своём планшете. Результат оказывался хорошим, но иногда трудночитаемым (размер текста часто скакал на одной странице). Мне не хотелось использовать готовый шрифт, поэтому я решил создать собственный на основе своего рукописного текста. Шрифт повысит читаемость текста и сделает его однородным.

Примечание: это моя первая проба создания шрифта. Я не дизайнер, не освоил создание шрифтов в совершенстве и не специалист по программе FontForge. Возможно, существуют способы получше добиться того же результата. В этой статье я опишу свой процесс, который, вероятно, поможет другим начинающим создать свой первый шрифт (для личного пользования). Моя цель заключалась в создании шрифта TTF для применения в веб-публикациях с ограниченным набором символов (без полужирного и курсивного написания).

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

АСМОграф — замена Microsoft Visio, MapInfo и в какой-то мере даже AutoCAD

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

Многим компаниям сегодня приходится менять привычное программное обеспечение, потому что лицензии на западное ПО не удается продлить, а работа приложений становится нестабильной. В этом посте мы подробнее расскажем про векторный редактор АСМОграф, который уже несколько лет является альтернативой зарубежным программным пакетам при работе со схемами и чертежами. Те, кому нужно было ПО, зарегистрированное в реестре, уже работали с этой программой, а сегодня АСМОграф стал интересным решением и для всех остальных, кто занимается проектированием.

Читать далее
Всего голосов 7: ↑5 и ↓2+6
Комментарии24

Как сделать рамку редактирования как в Figma-е

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Начинаем работать с цифровыми картами (ГИС)

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

Обзорная статья, которая поможет разобраться с базовыми понятиями, познакомит с основами, даст общее представление о принципах работы цифровых карт и геоинформационных систем (ГИС). Будет полезно тем, кто только начинает работать с картами и хочет начать в этом разбираться.

Читать далее
Всего голосов 11: ↑9 и ↓2+8
Комментарии12

3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»?

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

Друзья! Многие ли из вас застали такую легендарную видеокарту, как S3 ViRGE? Когда-то этот GPU стоял чуть ли не в каждом втором офисном компьютере: благодаря дешевизне и заявленной поддержке 3D-ускорения, эту видеокарту просто сметали с полок магазинов. Далеко не все могли себе позволить ATI Rage, Riva TNT и уж тем более 3dfx Voodoo и очень разочаровывались в свежекупленной видеокарте, когда пытались поиграть в новомодные игры тех лет. На момент написания статьи, в сети слишком мало материала о том, как работали видеокарты 90-х «под капотом», однако мне удалось найти даташит на видеочип, SDK для программирования 3D-графики специально под него и некоторую документацию. Я решил исправить это недоразумение и начать развивать отдельную рубрику о работе старых видеочипов: начиная от S3 ViRGE и заканчивая GPU PS2 и PSP. Сегодня мы с вами: вспомним о S3 ViRGE, узнаем о том, как работали видеокарты в 90-х годах, затронем 2D и 3D режим и почему они тесно связаны между собой, посмотрим на проприетарное графическое API S3 ViRGE и раскроем причину, почему же этот GPU был таким медленным!
Читать дальше →
Всего голосов 44: ↑42 и ↓2+60
Комментарии160

Сам написал, сам погонял: как я написал 3D-гонки «на жигулях» за неделю, полностью с нуля?

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

Статьи про инди-разработку игр — это всегда интересно и занимательно. Но статьи про разработку игр с нуля, без каких-либо игровых движков — ещё интереснее! У меня есть небольшой фетиш, заключающийся в разработке минимально играбельных 3D-демок, которые нормально работали бы даже на железе 20-летней давности. Полтора года назад, в мае 2022 года, я написал демку гоночной игры с очень знакомым всем нам сеттингом — жигули, девятки, десятки, и всё это даже с тюнингом! В этой статье я расскажу вам о разработке 3D-игр практически с нуля: рендерер, менеджер ресурсов, загрузка уровней и граф сцены, 3D-звук, ввод и интеграция физического движка. Интересна подробнейшая хаброторная статья о разработке игры с нуля? Тогда добро пожаловать!
Читать дальше →
Всего голосов 157: ↑157 и ↓0+157
Комментарии55

Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?

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

Многие программисты так или иначе имеют тягу и интерес к разработке игр. Немалое количество спецов было замечено за написанием маленьких и миленьких игрушек, которые были разработаны за короткое время «just for fun». Большинству разработчиков за счастье взять готовый игровой движок по типу Unity/UE и попытаться создать что-то своё с их помощью, особенно упорные изучают и пытаются что-то сделать в экзотических движках типа Godot/Urho, а совсем прожжённые ребята любят писать игрушки… с нуля. Таковым любителем писать все сам оказался и я. И в один день мне просто захотелось написать что-нибудь прикольное, мобильное и обязательно — двадэшное! В этой статье вы узнаете про: написание производительного 2D-рендерера с нуля на базе OpenGL ES, обработку «сырого» ввода в мобильных играх, организацию архитектуры и игровой логики и адаптация игры под любые устройства. Интересно? Тогда жду вас в статье!
Читать дальше →
Всего голосов 56: ↑55 и ↓1+71
Комментарии54
1
23 ...

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