• Чем бы это могло быть?

    @forspamonly2
    это муар между регулярной пиксельной сеткой и рисуемыми по некруглым координатам шагами ваших лучей. в фаерфоксе он точно так же есть.

    рейкастинг делается в обратную сторону. нужно идти по пикселам картинки и проверять не заслоняет ли конкретно этому пикселу какой-нибудь объект источник света.

    вот, добавил вам первый же нагуглённый метод определения пересечений (отсюда https://stackoverflow.com/questions/99353/how-to-t... ):



    зы. код у вас ужасный, не потому что "на хтмл", а потому что половина переменных не объявлена и попадает в глобальный контекст, плюс вы пытаетесь рисовать каждую точку отдельным прямоугольником, да ещё и между пикселов, размеры картинок не совпадают, куски рисуются в разное время, и так далее...
    Ответ написан
    2 комментария
  • Как можно запрограммировать гравитацию?

    @Daddy_Cool
    Не очень понятен уровень детализации.
    1. Задача гравитационного взаимодействия программируется сравнительно просто
    ru.wikipedia.org/wiki/Задача_трёх_тел
    у вас будет не три тела, а много (N тел). Т.е. вам нужно будет решать систему из 3N обыкновенных дифуравнений.
    Решение будет неправильным (по причине неустойчивости), но в общем похожим на правду.
    2. Также вам надо учесть, что у вас не материальные точки, а шары - т.е. при движении звезд учитывать расстояние не только между центрами, но и между поверхностями - когда поверхности соприкоснулись - начинается сливание.
    3. Как описать сливание звезд. Тут уже сложно. Звезда - это жидкость. Если хотите видеть как меняется форма поверхности - нужно решать уравнение Навье-Стокса (ну или возможно просто Эйлера) с введенными электромагнитными и гравитационными силами и отслеживать форму поверхности каким-либо методом - например VOF (Volume of fluid). ну это так как на самом деле. Если просто поиграться - то зная суммарный объем можно просто слить звезды как капельки не думая о физике.
    Успехов!
    Ответ написан
    Комментировать
  • Как можно реализовать физику кругов?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    • quadtree
    • Verlet integration
    Ответ написан
    Комментировать
  • Как можно реализовать физику кругов?

    Griboks
    @Griboks
    1. Определитесь с физикой ваших кругов. Что такое круг? Какими свойствами он обладает? Как взаимодействует с другими кругами, стенками, полом, воздухом, внутри себя, гравитацией? Думаю, вы говорили про проекцию сбоку на столкновение однородных абсолютно упругих шаров в вакууме.
    2. Составьте модель. Обычно используют аналитические или имитационные.
    3. Выберите язык. Найдите библиотеки/физический движок или реализуйте самостоятельно. При малых скоростях обычно используют банальную проверку |delta {x;y;z}| <= R.
    Ответ написан
    2 комментария
  • Как можно реализовать физику кругов?

    @AlexSku
    не буду отвечать из-за модератора
    Круг от стенки или пола: угол отражения равен углу падения.
    При столкновении кругов векторы скоростей после столкновения будут зависеть от их масс (если круги одной толщины и плотности, то массы пропорциональны площади). Скорее всего надо написать законы сохранения импульса по обеим координатам и найти решения.
    Ответ написан
    1 комментарий