• Трёхмерная графика с нуля. Часть 1: трассировка лучей

    • Перевод
    image


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

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

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


    Читать дальше →
  • Чатбот, который «как Siri, только круче» на наивном Байесовском классификаторе

    Всем, привет! Не секрет, что в последнее время в мире происходит резкий всплеск активности, по поводу исследования такой темы, как искусственный интеллект. Вот и меня это явление не обошло стороной.

    Предыстория


    Всё началось, когда в самолёте я посмотрел типичную, на первый взгляд американскую комедию – «Почему, он?» (англ. Why him? 2016). Там, у одного из ключевых персонажей в доме был установлен голосовой помощник, который нескромно позиционировал себя «как Siri, только круче». К слову бот из фильма умел не только вызывающе разговаривать с гостями, иногда ругаясь матом, но также контролировать весь дом и прилегающую территорию – от центрального отопления до смыва унитаза. После просмотра фильма, мне пришла идея реализовать что-то подобное и я начал писать код.
    Читать дальше →
  • Сказ про резисторы и неонки

    • Tutorial

    Расчёт цепей постоянного тока на пальцах, или давайте считать ЦАП для троичной логики


    Но для начала неонки, какой же русский их не любит?


    Итак, снова я со своими троичными железками, но в этой статье они выступают фоном, сегодня статья про резисторы. Запаял я было несколько платок, в которые можно воткнуть газоразрядные лампы типа ИН-12 или ИН-15, но часы делать не захотел :)


    Читать дальше →
  • Автоколебания и резонанс

    • Tutorial

    Здравствуйте!


    В связи с вопросами читателей моей публикации [1] касательно условий возбуждения автоколебаний в механической системе, я решил описать явление возникновения и поддержания автоколебаний подробно, выделив основные области возникновения и применения автоколебаний.

    В википедии автоколебания объясняют так [2]:
    Незатухающие колебания в диссипативной динамической системе с нелинейной обратной связью, поддерживающиеся за счёт энергии постоянного, то есть непериодического внешнего воздействия.

    Автоколебания отличаются от вынужденных колебаний тем, что последние вызваны периодическим внешним воздействием и происходят с частотой этого воздействия, в то время как возникновение автоколебаний и их частота определяются внутренними свойствами самой автоколебательной системы. При этом частота становится почти равной резонансной.
    Читать дальше →
    • +10
    • 6,5k
    • 1
  • Не простая координатная система, а золотая

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

    image

    Распределение углов в ромбах в одном 1:4, 36°:144°, в другом 2:3, 72°:108°. Углы в ромбах кратны одной десятой полного разворота, 36°.

    Определим координаты углов правильного десятиугольника.
    Читать дальше →
  • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
  • Избранные главы теории управления на пальцах: линейные наблюдатели динамических систем

    • Tutorial
    Продолжаю писать о теории управления «на пальцах». Для понимания текущего текста необходимо прочитать две предыдущие статьи:

    1. Методы наименьших квадратов
    2. Линейно-квадратичный регулятор, вводная
    3. Линейно-квадратичный регулятор и линейные наблюдатели

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


    Читать дальше →
  • Интегрирование уравнений движения

    • Перевод
    image

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

    Темой этой статьи как раз и будет реализация такого интегрирования.

    Интегрирование уравнений движения


    Вы можете помнить из курса старшей школы или вуза, что сила равна произведению массы на ускорение.

    $F = ma$


    Преобразуем это уравнение и увидим, что ускорение равно силе, делённой на массу. Это соответствует нашим интуитивным ожиданиям, потому что тяжёлые объекты труднее бросать.

    $a = F/ma = F/m$


    Ускорение — это темп изменения скорости от времени:

    $dv/dt = a = F/m$



    Аналогично, скорость — это темп изменения позиции от времени:

    $dx/dt = v$


    Это значит, что если мы знаем текущие позицию и скорость объекта, а также приложенные к нему силы, то сможем проинтегрировать, чтобы найти его позицию и скорость в определённый момент времени.
    Читать дальше →
    • +26
    • 9,4k
    • 7
  • Оптимизация портфеля ценных бумаг средствами Python

      Введение


      На финансовом рынке обращается, как правило, несколько типов ценных бумаг: государственные ценные бумаги, муниципальные облигации, корпоративные акции и т.п.

      Если у участника рынка есть свободные деньги, то их можно отнести в банк и получать проценты или купить на них ценные бумаги и получать дополнительный доход. Но в какой банк отнести? Какие ценные бумаги купить?

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

      Программные средства для анализа портфелей ценных бумах должны работать с матрицами доходности и решать задачи нелинейного программирования с ограничениями в виде строгих и нестрогих неравенств. Символьное решение на Python некоторых типов задач нелинейного программирования мною уже рассматривалось в публикации [1]. Однако, применить предложенные в указанной публикации методы для анализа портфеля ценных бумаг нельзя из-за ограничений в виде строгих неравенств.

      Целью настоящей публикации является разработка методов оптимизации портфелей ценных бумаг с использованием библиотеки scipy.optimize. Пришлось исследовать и применить при программировании такие мало известные возможности указанной библиотеки, как введение дополнительных ограничений в функцию цели [2].
      Читать дальше →
    • Создаём собственный физический 2D-движок: части 2-4

      • Перевод
      image


      Оглавление


      Часть 2: ядро движка

      • Интегрирование
      • Метки времени
      • Модульная архитектура
        • Тела
        • Формы
        • Силы
        • Материалы
      • Широкая фаза
        • Отсечение дубликатов контактных пар
        • Система слоёв
      • Проверка пересечения полупространств

      Часть 3: трение, сцена и таблица переходов

      • Трение
      • Сцена
      • Таблица переходов коллизий

      Часть 4: ориентированные твёрдые тела

      • Математика вращения
      • Ориентированные формы
      • Распознавание коллизий
      • Разрешение коллизий

      Читать дальше →
      • +50
      • 16,7k
      • 7
    Самое читаемое