full stack javascript developer
0,0
рейтинг
26 апреля 2013 в 17:22

Разработка → Verlet.js — физический движок на основе метода Верле

Метод численного интегрирования Верле издавна использовался для вычисления траекторий частиц. Сам метод был впервые использован ещё в 1791 году французским астрономом Жаном-Батистом-Жозефом Деламбром. В 1907 норвежский математик и физик Карл Штёрмер использовал его для моделирования движения частиц в магнитном поле, поэтому иногда этот метод называют методом Штёрмера. Современное название этот алгоритм получил от имени французского физика Лу Верле, который в 1967 году использовал его в моделировании молекулярной динамики. В последнее время метод Верле применяется и в разработке компьютерных игр.

Библиотека Verlet.js, опубликованная на Гитхабе всего неделю назад, уже успела набрать больше 1700 подписчиков, что делает её одним из самых популярных физических движков JavaSсript. Пока что Verlet.js работает только в двухмерном пространстве. В планах автора — сделать библиотеку трёхмерной и избавиться от жёсткой привязки к canvas, чтобы можно было использовать развитые оптимизированные движки рендеринга, например, three.js.

Примеры использования библиотеки (простые геометрические формы, ткань, фрактальные деревья и паук в паутине) подчёркивают специфику метода Верле — все они представляют собой системы частиц, объединённые гибкими связями, а не твёрдые тела.

Илья Сименко @ilya42
карма
526,7
рейтинг 0,0
full stack javascript developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (43)

  • +11
    В первой демке «колесо» и семиугольник можно «сломать», если взять за центр и покрутить. Это так и задумано?
    • +2
      А еще их можно подбросить, и спустя несколько секунд они падают.
      • +1
        Гравитация-то это понятно…
    • 0
      А еще это колесо можно «завести» и оно будет крутиться не переставая.
    • 0
      Их и не за центр легко сломать — схватить и швырнуть об стену.
    • +1
      Это свойства алгоритма такое. Как было указано в статье, здесь нет понятия твердых тел — только точи и гибкие соединения. Соответственно, все гибкие соединения можно сломать/растянуть/запутать, если приложить к ним большую силу.
      • 0
        Понятно, спасибо.
  • +7
    Последняя демонстрашка интересная получилась, можно паука оторвать от паутины, а он к ней будет тянуться.
    Не зря у этой библиотеки столько подписчиков появилось.
    • +6
      Да ещё и двигается довольно реалистично!
      Ну по крайней мере мне с моей арахнофобией сделалось очень неуютно.
      Поэтому я был рад стукнуть его об стену и скинуть вниз
      • +1
        Реалистично, хотя ножки какие-то жиденькие и заплетаются. Как будто не гроза слабого пола, а резиновая пугалка :)
        • +1
          Ну не без этого. Если он сумел уцепиться лапой, а само тело резко отвести — лапа растянется на всё поле. Хотя лично мне и это жутко)
        • 0
          не только слабого:
          habrahabr.ru/post/178135/#comment_6186049
  • +3
    Приколько, если паука оторвать от паутины, он всеми силами пытается «вернуться» :)
    • +2
      А если таки удастся отровать, он «умирает». Но если снова посадить на паутину — оживает.
    • +3
      у меня если я отрываю его от паутины он просто падает вниз и валяется.
      • 0
        И потихоньку «скатывается» к паутине (к середине экрана) ;)
        • 0
          У меня не скатывается :(
          • 0
            Положите его на бок ;)
            • 0
              у меня на боку лежит и все. без движений совершенно. никуда не катится. никакая паутина ему не нужна. как упал так и валяется.
            • +1
              Да, вы правы:) Если положить его на левый бок (MechanisM), то он ползет к паутине.
              Какой-то сомнительный движок (колесо и семиугольник мнутся, паук (мертвый(!)) ползет к паутине).
              • +1
                у меня не ползет. как падает так и лежит на любом боку на любой стороне от паутины.
                • +3
                  Скрытый текст
                  image
                  • +6
                    Похоже у вас монитор под углом стоит. Поправьте.
                    • 0
                      Секрет в другом. Надо его несколько раз об стенку ударить (посмотрите, как я это делал). После этого стенка становится ему ненавистной и он пытается отойти как можно дальше от нее. Т.к. с другой стороны тоже стенка, то самое оптимально место — по середине. Все просто.
                      • +1
                        Нет. Секрет в том, что вы его не ровно положили. Одна из его передних лапок загнута назад — тогда он начинает ползти.
                        Скрытый текст
                        • –1
                          КЭП, это ты?

                          P.S: Мы знаем. Именно поэтому я его и перекладывал.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      А чем вы делали анимацию?:)
    • 0
      Сейчас случайно наткнулся:
      • +1
        Какое интересное поведение.
  • +3
    Я восхищен! Словно мне лет 6 и я увидел игрушку лего. Реально здорово!
  • 0
    Геометрические формы напомнили Soda Constructor, в свое время часы проводил за ним :)
    sodaplay.com/
  • 0
    Восхитительные примеры!
  • 0
    Я пол часа рабочего времени потратил на игру с пауком :(
  • +5
    Отличная библиотека.
    А паук стремный. Как живой :)
    • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      У меня арахнофобия. И этот паук меня напугал, он почти как живой.
  • +2
    физический движок для canvas в 400 строк кода
  • –1
    ахринеть-не встать! фигею…
    долго пытался запутать паука в его же сеть…. не запутал….
  • 0
    Жаль коллизий нет, и документация по API отсутствует, сыровато.
  • 0
    Кому интересно, попробовали перенести под Android, но с производительностью пока туго.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.