Как стать автором
Обновить
12
0
Algorithm engineer @CrazyFizik

Пользователь

Отправить сообщение

Выразительный JavaScript: Рисование на холсте

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

Содержание




Рисование — это обман.
М.К.Эшер


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

Но такое использование DOM – не то, для чего он создавался. Некоторые задачи, типа рисования линии между двумя произвольными точками, крайне неудобно выполнять при помощи обычных элементов HTML.

Есть две альтернативы. Первая – SVG, масштабируемая векторная графика, также основанная на DOM, но без участия HTML. SVG – диалект для описания документов, который концентрируется на формах, а не тексте. SVG можно встроить в HTML, или включить через тег <img>.

Вторая альтернатива – холст (canvas). Холст – это один элемент DOM, в котором находится картинка. Он предоставляет API для рисования форм на том месте, которое занимает элемент. Разница между холстом и SVG в том, что в SVG хранится начальное описание форм – их можно в любой момент сдвигать или менять размер. Холст же преобразовывает формы в пиксели (цветные точки растра), как только нарисует их, и не запоминает, что эти пиксели из себя представляют. Единственным способом сдвинуть форма на холсте является очистить холст (или ту часть, которая окружает форму) и перерисовать её на другом месте.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии3

Шаблоны проектирования в автоматном программировании

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

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

В статье рассматриваются особенности применения шаблонов Visitor/Double Dispatch и State при реализации системы на основе конечного автомата. Кроме того, статью можно рассматривать как продолжение цикла публикаций о шаблонах проектирования на Хабрахабре.

Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии12

Шпаргалка по шаблонам проектирования

Время на прочтение2 мин
Количество просмотров1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Всего голосов 192: ↑179 и ↓13+166
Комментарии66

Ракета на термоядерном топливе от MSNW

Время на прочтение15 мин
Количество просмотров52K
С днём космонавтики! Прочитав пост «Под эгидой NASA строят термоядерный космический двигатель», я решил найти более подробную информацию о данном проекте. Далее я хочу рассказать о том, что же представляет из себя этот двигатель, и как он работает.



Читать дальше →
Всего голосов 111: ↑108 и ↓3+105
Комментарии77

Введение в разработку игр для Windows 8 с использованием XNA и MonoGame

Время на прочтение8 мин
Количество просмотров40K
Как вы наверное заметили, в нашем блоге появился ряд материалов, которые раскрывают азы создания прикладных приложений WinRT для Windows 8. В данной серии статей будет рассказано о том как вы можете создавать игровые приложения WinRT на языке C#.



Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии11

Разработка игры в 115 кб — хаки, баги и досада

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

В начале ноября я участвовал в 115-ом по счете конкурсе сообщества Independent Games Developers Contests (IGDC), темой которого была разработка аркадного шутера с лимитом в 115 килобайт за неделю. Под катом история разработки игры на OpenGL + Free Pascal, эксперименты с LZO, обход багов компилятора FPC для uFMOD, простейшая генерация текстур и досадный баг на видеокартах NVidia, который все испортил.

Видео, бинарник для Windows и исходный код также прилагаются — ищите в конце статьи.
Читать дальше →
Всего голосов 62: ↑60 и ↓2+58
Комментарии36

На взрыволёте к Юпитеру

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

Ограниченность химических ракет была ясна ещё до начала регулярных космических пусков. Формула Циолковского прямо говорит, что на привычных нам двигателях можно слетать на Луну (стартуя на ракете тысячи в три тонн начальной массы и вернувшись в кораблике в несколько тонн), с огромным трудом долететь до Марса (с во много раз худшим соотношением начальной/конечной массы), но вот покорить Солнечную систему на химических ракетах нельзя. Поэтому уже в середине двадцатого века стали появляться альтернативные проекты, наиболее ярким из которых стал атомный взрыволёт (импульсная ракета). В этом посте мы поговорим о его конструкции, истории создания, перспективах в 21 веке, а ещё слетаем на нём к Юпитеру в Orbiter'е.
Читать дальше →
Всего голосов 168: ↑164 и ↓4+160
Комментарии161

Строим роботанк с управлением по Wifi, камерой, пушкой, блекджеком и т.д

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

Всем привет. У меня таки возникло непреодолимое желание поделиться с миром своим достижением. Достижением является танк, который рулится по WiFi с геймпада, транслирует на пульт видео в реальном времени, передает с пульта и на пульт звук, а также имеет пушку с лазерным прицелом, из которой можно в кого-нибудь пострелять.

Этот пост будет первым тестовым, дабы понять, интересно ли такое кому-нибудь, кроме меня. В нем опишу общее строение, используемые технологии и устройства.

UPD: добавлено видео.

Читать дальше →
Всего голосов 87: ↑82 и ↓5+77
Комментарии71

Бесплатная книга «Game Programming Patterns» от программиста Electronic Arts Боба Найстрома

Время на прочтение1 мин
Количество просмотров84K
Боб Найстром, программист, проработавший восемь лет в компании Electronic Arts, закончил работу над книгой «Game Programming Patterns». Она доступна бесплатно на сайте gameprogrammingpatterns.com. Писать книгу Боб Найстром начал четыре года назад. Большинство книг, посвящённых программированию игр, говорит он во введении, либо подробно раскрывают какой-то из аспектов создания игры — физический движок, графику, искусственный интеллект, либо описывают процесс создания игры в определённом жанре от начала до конца. Ему очень не хватало книги, рассказывающей о решении типовых задач, возникающих перед программистом, книги достаточно универсальной, не привязанной к жанрам или конкретным подсистемам игр. И поэтому он решил написать такую книгу сам.
Читать дальше →
Всего голосов 95: ↑94 и ↓1+93
Комментарии30

C#: требования и рекомендации по написанию кода

Время на прочтение5 мин
Количество просмотров144K
Не так давно в комментариях к топику AlexS высказал идею использования соглашения об оформлении на Хабре кода примеров темы .Net написанных на C#.

Я немного поизучал имеющиеся предложения из этих источников:
submain.com/blog/FreeCVBNETCodingGuidelinesEbookDownload.aspx
idesign.net/idesign/DesktopDefault.aspx
и скомпилировал черновик который описывает самые базовые правила оформления кода написанного на C#.

Предлагаю:
— обсудить этот черновик;
— внести в него все необходимые изменения;
— утвердить как стандарт написания C# кода на Хабре.
Более того, предлагаю создать документ, который можно было бы предложить как рекомендации habrahabr comunity для всех других программистов C#.

Под катом вы найдете текст черновика. Предлагаю всем желающим обсудить его и подвергнуть надлежащей правке.

Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии117

RPG для обучения детей программированию на Java

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

Java считается мало подходящим для того, чтобы стать первым языком программирования, в отличие от того же Pascal или Python, тем более для детей. Однако, это обстоятельство не остановило специалистов университета Калифорния (Сан-Диего) от любопытного эксперимента, который, по их словам, показал вполне успешные результаты — ими была разработана игра CodeSpell для обучения детей Java в ходе игрового процесса.

Игра представляет собой нечто вроде RPG от первого лица с довольно скромной на сегодня графикой и весьма типичным сюжетом. Игрок — волшебник в стране, населённой гномами, которые по некоторой причине утратили свои магические способности. Задача игрока — помогать гномам при помощи своей магии, которая представляет из себя Java-код, выполнение которого приводит к модификации предметов и влиянию на окружающий мир: левитация, полёты, уничтожение огнём и тому подобное. Игра «помогает» игроку различными способами, начиная от подсказок и заканчивая чем-то на подобие дополнения кода, так что раздражения по поводу заклинания на Java «как разрушить это препятствие» у школьников не должно возникнуть.

Игровой процесс — правда, урывками и без особого смысла — можно посмотреть на видео
Узнать подробности
Всего голосов 80: ↑70 и ↓10+60
Комментарии92

Автономный SDR приёмник на ПЛИС

Время на прочтение8 мин
Количество просмотров111K
image
Ранее я уже писал про самодельный SDR приемник, сделанный на базе отладочной платы DE0-nano. Как и большинство других SDR приемников, он не был способен работать без подключения к компьютеру. При этом в использованной ПЛИС оставалось еще большое количество неиспользованных ресурсов, так что я решил сделать приемник полностью автономным.
О том, как же работает весь SDR приемник целиком, и как его реализовать — далее.
Читать дальше →
Всего голосов 66: ↑65 и ↓1+64
Комментарии14

Дизайнер игр: модель для сборки

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


Привет, меня зовут Александр Мишулин, я работаю креативным директором в Allods Team, подразделении Mail.Ru Group, которое занимается разработкой клиентских игр. Под термином «креативный директор» может скрываться многое. В моем случае это руководство направлением игрового дизайна в Allods Team, в первую очередь – на проекте Skyforge. Достаточно часто нам задают вопросы «Что такое дизайнер игр?», «Как им стать?», «Что вы ждете от кандидата в дизайнеры?», и сегодня я хотел бы ответить на часть таких вопросов и рассказать об этой профессии.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии9

Корректная реализация разностной схемы ПИД регулятора

Время на прочтение7 мин
Количество просмотров86K
ПИД-регулятор является простейшим регулятором, имеющим эффективные аппаратные аналоговые реализации, и потому применяемый наиболее широко. Для своей работы требует настройки 3х коэффициентов под конкретный объект, позволяющие подобрать процесс регулирования согласно требованиям. Обладая простым физическим смыслом и простой математической записью, применяется широко и часто в регуляторах температуры, регуляторах расхода газа и других системах, где требуется поддерживать некий параметр на заданном уровне, с возможными переходами между разными заданными уровнями. Разумеется, существуют более сложные регуляторы, позволяющие более точно и быстро и с меньшими перерегулированиями выходить на заданные параметры, а так же учитывающие нелинейность или гистерезис регулируемого объекта, однако они обладают большей вычислительной сложностью и сложнее в настройке.

Несмотря на свою простоту как физического смысла, так и математической записи:

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

Причем проверить качество реализации ПИД регулятора крайне легко.
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии27

ПИД-регулятор своими руками

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

I. Постановка задачи


Нужно держать температуру на заданном неком уровне и менять задание. Есть микроконтроллер, к которому прицеплены измеритель температуры, и симистор для управления мощностью. Не будем греть голову на ТАУ, ни разностными схемами, просто возьмём и сделаем «в лоб» ПИД-регулятор.
Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии45
12 ...
22

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность