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

https://steamclub.net

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

Премия Жуазеля по оригами в 2023 году

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

Что должен рисовать художник? Чувство. Вечность. Шизофрению. Художественное искусство на заре цивилизации прожевало и выплюнуло попытки отражать реальность. Однако, когда художник садится создавать анимационную картину, то становится заложником геометрии. Искра, буря, безумие - должны состоять из кубов, точек и орезков. Дождь, пыль и блики - узлы математических блоков. Выйти за пределы геометрии можно совместив двухмерную и трехмерную графику в одном кадре. Сейчас это золотой стандарт анимации. А вот в оригами выйти за рамки геометрии невозможно. Парадоксальный сюжет необходимо воплотить своими руками в углах и биссектрисах универсального рабочего тела - квадрата. Думаю, что именно поэтому художники в технике оригами - представители конструктивного мышления - математики, физики, преподаватели технических вузов.

Читать далее
Всего голосов 41: ↑40 и ↓1+48
Комментарии12

О непознанной геометрической алгебре просто. Часть1. Взаимосвязь с тождеством Лагранжа

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

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

Интерес начался со статьи «Единый математический язык для физики и инженерного искусства в 21 веке». Очень удобно, когда векторы можно переставлять местами в произведении и даже делить друг на друга, а повороты так и вообще задаются простейшими формулами. Но...

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

Головоломка ассасина

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

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

Головоломка относится к классу так называемых «бильярдных задач», изучаемых в области динамических систем. Решение текущей задачи принадлежит профессору математики университета Джонса Хопкинса Эмили Рил.

Рассмотрим квадратную комнату в плоскости XY, и пусть A («ассасин») и T («цель») — две произвольные, но фиксированные точки внутри комнаты. Предположим, что комната схожа по физическим характеристикам с бильярдным столом, так что любой «выстрел» А рикошетит от стен, причём угол падения равен углу отражения. Можно ли заблокировать любой возможный «выстрел» А в Т, разместив конечное количество аналогичных по свойствам точек («телохранителей») в комнате?

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

Приведение линейных нестационарных систем

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

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

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

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

Стреляем в будущее

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

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

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

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

Рейтрейсер на JavaScript

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

Знаете ли вы что такое рейтрейсер? Это программа которая рисует трёхмерную сцену на экране так, как её бы увидели вы. Конечно, не совсем так, но некоторые рейтрейсеры умеют рисовать очень правдоподобные картинки, например как в "Аватаре".

Идея рейтрейсера очень простая и в этой статье я раcскажу как устроен этот алгоритм и даже напишу его на JavaScript. Картинки и пример прилагаются.

Читать дальше →
Всего голосов 249: ↑247 и ↓2+245
Комментарии102

Краткое введение в тензоры

Время на прочтение3 мин
Количество просмотров165K
В заметке Магия тензорной алгебры было дано очень неплохое введение в математику тензоров. Но, как мне кажется, этот текст все-равно несколько сложен для понимания. В нем не до конца понятно, что же это такое тензор и зачем он вообще нужен.

Сейчас я попытаюсь дать совсем простое введение в тензоры. Я не претендую на математическую строгость, поэтому некоторые термины могут употребляться не совсем корректно.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии26

Перемещение частиц по 3D-геометрии

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

В данной статье я постараюсь рассказать каким образом можно реализовать движение объектов по поверхности 3D геометрии.

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

Тангажные колебания малого спутника

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

Вывод уравнений тангажных колебаний для малых спутников на магнитной системе управления (по типу Университетский-Татьяна-2).

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

Американская кровавая лотерея. Как работала мобилизация в США времён войны во Вьетнаме

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

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

Однако в 1969 году всё приняло не стандартный оборот: в прямом эфире по указу президента Ричарда Никсона была проведена лотерея, в которой победители получали не денежный чек, а возможный билет во Вьетнам.

Читать далее
Всего голосов 206: ↑186 и ↓20+206
Комментарии410

Как я исполнил свою мечту и написал движок Диззи

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

Давным-давно, два английских школьника умудрились основать серию игр, ставшую легендарными играми для ZX-Spectrum. Да, речь про братьев Оливеров и их неподражаемого Диззи. Впервые услышал я про Диззи в начале девяностых в возрасте лет эдак девяти-десяти, когда мне рассказали, как подруга моей сестры играет в некую игру с бегающим и собирающим предметы яйцом на компьютере (!). Сам спектрум у меня появился чуть позже – в одиннадцать лет (это октябрь 1994 года), почти вместе с книжками серии «Как написать игру для ZX-Spectrum». И вот в книжке про написание игры на ассемблере была картинка из игры Dizzy-4. Увы, самой игры у меня не будет ещё год-два. Но всё-таки, в конце-концов, мне её купили, как сейчас помню, в ларьке в СПб на Балтийском вокзале. Кассета была известной многим студии “Михаил и Михаил” (MIM). Вот тогда-то я прочно запал на Диззи. Я играл в него с утра до вечера, разгадывая головоломки и собирая монеты. Много-много лет мне очень хотелось написать что-то подобное. В 1996 у меня даже получился невероятный примитив на бейсике. Много лет я методично приближался к своей цели. И вот именно сейчас, спустя 25 лет, у меня наконец-то получилось что-то более-менее играбельное. Вот о том, как написать такую игру, я и расскажу.
Всего голосов 24: ↑24 и ↓0+24
Комментарии14

Как популярность DOS/4GW помогла играм в Windows 95

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

В начале 1990-х самым популярным расширителем DOS был DOS/4GW. Во время разработки Windows 95 я очень много времени тратил на решение задачи совместимости с играми под MS-DOS, поэтому видел много баннеров расширителей DOS, и чаще всего это был DOS/4GW.

Вы можете задаться вопросом: «Как эти игры вообще запускались в Windows 95, если они поставлялись с расширителем DOS? Разве расширитель не пытался бы безуспешно перейти в защищённый режим, потому что Windows уже управляла защищённым режимом?»

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

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

Автоматизация бурления: ChipArp

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

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

Как ни странно, несмотря на многократно выросшую с тех пор мощность современных компьютеров и синтезаторов, в современном музыкальном ПО этот классический приём стал менее доступен, чем раньше. Расскажу о том, почему так вышло, а также о своём довольно старом проекте (2017 год), в котором я попытался решить эту проблему, и почему это не очень-то получилось, хотя и получилось.
Читать дальше →
Всего голосов 69: ↑69 и ↓0+69
Комментарии7

Архитектура и программирование Sony Playstation 1

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

По сравнению с другими, ранее описанными мной архитектурами, архитектура Sony Playstation 1 (PSX) - сравнительно современная. И дело даже не в годе выпуска (1994) - скорее это общее ощущение сочетания новых возможностей и исчезновения привычных старых, которые были типичными для компьютеров и приставок предыдущей эпохи.

PSX (это сокращение пошло от первоначального названия проекта - Playstation X) имеет в качестве центрального процессора MIPS R3000, работающий на частоте 33МГц. Причём, Sony отказалось от сопроцессора для вычислений с плавающей точкой и вместо него сопроцессором в PSX является так называемый GTE (Geometry Transformation Engine), выполняющий различные операции с фиксированной точкой над векторами и матрицами.

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

Почему и как Индия стала глобальным IT-гигантом?

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

В начале 2020-х годов всё чаще говорят о превращении Индии в глобальный IT-хаб и «индийском информационном чуде».

Глобальные информационные компании вроде Facebook, Google, Amazon вместе с американскими и арабскими инвестиционными фондами выстраиваются в очередь, чтобы вкладываться в индийскую информационную сферу и развивать сотрудничество с индийскими IT-корпорациями – такими, как Jio Platforms. Трое из четырёх айтишников на мировом рынке – индийцы. Город Бангалор, где производится 38% IT-экспорта Индии, в ближайшие годы может обойти Сан-Франциско с его Кремниевой долиной в качестве важнейшего мирового центра информационных технологий.
Читать дальше →
Всего голосов 40: ↑33 и ↓7+47
Комментарии107

Direct3D vs OpenGL: история противостояния

Время на прочтение13 мин
Количество просмотров52K
По сей день в Интернете можно встретить споры о том, какой же графический API лучше: Direct3D или OpenGL? Несмотря на свой религиозный характер, такие словесные баталии приносят полезный результат в виде неплохих исторических обзоров развития аппаратно-ускоренной графики.

image

Целью данного поста является перевод одного из таких экскурсов в историю, написанного Джейсоном МакКессоном (Jason L. McKesson) в ответ на вопрос «Почему разработчики игр предпочитают Windows». Этот текст вряд ли отвечает на поставленный вопрос, но историю развития и противостояния двух самых популярных графических API он описывает очень красочно и довольно подробно, поэтому в переводе я сохранил авторскую разметку. Текст написан в середине 2011 года и охватывает промежуток времени, начинающийся незадолго до появления Direct3D и до момента написания. Автор оригинального текста является опытным разработчиком игр, активным участником StackOverflow и создателем обширного учебника о современном программировании 3D-графики. Итак, предоставим слово Джейсону.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии112

Нормали и обратное транспонирование, часть 2: сопряжённые пространства

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

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


Но некоторые вопросы были заметены под ковёр.

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

Нормали и обратное транспонирование, часть 1: внешняя алгебра

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

Есть такой загадочный факт о линейных преобразованиях: некоторые из них, а именно неоднородное масштабирование и сдвиг, по какой-то причине различают "обычные" векторы и нормали. Когда мы преобразуем "обычный" вектор матрицей, то нормали почему-то нужно преобразовывать обратной транспонированной матрицей. Как это понять?


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

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

Игровые циклы или ЭлектроКардиоГама

Время на прочтение11 мин
Количество просмотров52K
Игровой цикл — это пульс каждой игры. Ни одна игра не будет работать без этого. Однако, к несчастью каждого нового разработчика игр, в сети нет хороших статей, в которых уделено достаточное внимание этой теме. Но не печальтесь, потому как только что вы получили возможность прочитать единственную в своем роде статью, уделяющую вопросу игровых циклов заслуженное внимание. По долгу службы мне часто приходится иметь дело с большим количеством кода мелких мобильных игр. И я каждый раз удивляюсь сколь много существует реализаций игрового цикла. Вы тоже можете удивиться как можно для такой, казалось бы простой, вещи можно придумать множество имплементаций. А ведь можно! И в статье я постараюсь рассказать о достоинствах и недостатках наиболее популярных вариантов игровых циклов. Также я постараюсь описать наилучший на мой взгляд вариант реализации игрового цикла.
(Thanks to Kao Cardoso Félix this article is also available in Brazilian Portuguese) (Thanks for me, in Russian also, прим. перев.)
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии62

Умножение матриц: эффективная реализация шаг за шагом

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


Введение


Умножение матриц — это один из базовых алгоритмов, который широко применяется в различных численных методах, и в частности в алгоритмах машинного обучения. Многие реализации прямого и обратного распространения сигнала в сверточных слоях неронной сети базируются на этой операции. Так порой до 90-95% всего времени, затрачиваемого на машинное обучение, приходится именно на эту операцию. Почему так происходит? Ответ кроется в очень эффективной реализации этого алгоритма для процессоров, графических ускорителей (а в последнее время и специальных ускорителей матричного умножения). Матричное умножение — один из немногих алгоритмов, которые позволяет эффективно задействовать все вычислительные ресурсы современных процессоров и графических ускорителей. Поэтому не удивительно, что многие алгоритмы стараются свести к матричному умножению — дополнительная расходы, связанные с подготовкой данных, как правило с лихвой окупаются общим ускорением алгоритмов.

Так как реализован алгоритм матричного умножения? Хотя сейчас существуют множество реализаций данного алгоритма, в том числе и в открытых исходных кодах. Но к сожалению, код данных реализаций (большей частью на ассемблере) весьма сложен. Существует хорошая англоязычная статья, подробно описывающая эти алгоритмы. К моему удивлению, я не обнаружил аналогов на Хабре. Как по мне, этого повода вполне достаточно, чтобы написать собственную статью. С целью ограничить объем изложения, я ограничился описанием однопоточного алгоритма для обычных процессоров. Тема многопоточности и алгоритмов для графических ускорителей явно заслуживает отдельной статьи.

Процесс изложения будет вестись ввиде шагов с примерами по последовательному ускорению алгоритма. Я старался писать максимально упрощая задачу, но не более того. Надеюсь у меня получилось…
Читать дальше →
Всего голосов 90: ↑90 и ↓0+90
Комментарии49

Информация

В рейтинге
2 679-й
Зарегистрирован
Активность

Специализация

Project Director, Software Architect
От 700 000 $
Project management
Building a team
Startup management
Development management