Физический движок

  1. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    ux3sty писал:
    MrKerbMan, Закон сохранения импульса гласит: Если векторная сумма внешних сил, действующих на систему, равна нулю, то импульс системы сохраняется, то есть не меняется со временем.
    Векторная сумма внешних сил равна нулю, если отключить гравитацию курсора, импульс системы изначально равен нулю, значит и в конце равен нулю, а значит то единственное тело, которое осталось не двигается

    Между телами тоже есть гравитация...


    GLORY TO KOLOBKI!!!

    20 апреля 2014 - 22:49 / #121
  2. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, Это не внешняя сила.
    Если векторная сумма внешних сил, действующих на систему, равна нулю

    3-х местный самолет "Коротыш"

    20 апреля 2014 - 22:50 / #122
  3. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Если векторная сумма внешних сил, действующих на систему, равна нулю

    Я вообще непонимаю, о чём ты! Для тела это внешняя сила!


    GLORY TO KOLOBKI!!!

    20 апреля 2014 - 22:51 / #123
  4. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    V=((m1*v1) (m2*v2))/(m1 m2)
    Где V проекция скорости итогового тела, m1 масса первого тела до слипания, m2 масса второго тела до слипания, v1,v2 - скорости соответсвенною
    Вот правильное уравнение
    Сообщение отредактировал ux3sty 20 апреля 2014 - 22:58

    3-х местный самолет "Коротыш"

    20 апреля 2014 - 22:53 / #124
  5. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Ты бы лучше сказал, как надо. Это во первых. Во вторых, поскольку компьютер не может выполнять действия одновременно, значит, он выполняет их по очереди. А ОТ ЭТОГО ТОЧНОСТЬ СИЛЬНО УХУДШАЕТСЯ!

    А, ну ладн, попробуем.

    Неа, по твоей вообще куда-то со скоростью света улетает.
    Veloсity.x = (Mass b2->Mass) / ((Mass*Veloсity.x) (b2->Mass*b2->Veloсity.x));
    Veloсity.y = (Mass b2->Mass) / ((Mass*Veloсity.y) (b2->Mass*b2->Veloсity.y));


    GLORY TO KOLOBKI!!!

    20 апреля 2014 - 23:00 / #125
  6. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, Да здесь ты прав, но настолько точность не думаю, что изменится.
    Mass = Mass b2->Mass;
    b2->Velosity.x = b2->Velosity.x *(b2->Mass / Mass);
    b2->Velosity.y = b2->Velosity.y *(b2->Mass / Mass);
    R = sqrt(Mass);// b2->R / 3;
    Velosity = (Velosity*(b2->Mass / Mass) b2->Velosity);
    попробуй заменить на вот такое.

    MrKerbMan, Я там перепутал, не так: (m1 m2)/((m1*v1) (m2*v2))
    а так: ((m1*v1) (m2*v2))/(m1 m2)

    3-х местный самолет "Коротыш"

    20 апреля 2014 - 23:03 / #126
  7. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Почти ноль. Оставшийся объект еле тащится. Спасибо.


    GLORY TO KOLOBKI!!!

    20 апреля 2014 - 23:05 / #127
  8. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, Обнови ссылку

    3-х местный самолет "Коротыш"

    20 апреля 2014 - 23:05 / #128
  9. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    ((m1*v1) (m2*v2))/(m1 m2)

    Попробую.


    GLORY TO KOLOBKI!!!

    20 апреля 2014 - 23:05 / #129
  10. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, А сколько тел максимально может быть на экране? Только 3?

    3-х местный самолет "Коротыш"

    20 апреля 2014 - 23:11 / #130
  11. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    ux3sty писал:
    MrKerbMan, А сколько тел максимально может быть на экране? Только 3?

    Нет, 10, но я сейчас работаю с массивом указателей, в следующих версиях можно будет добавлять объекты во время работы, будет поддерживаться неограниченное количество объектов.
    Кстати, ссылку обновил.
    Благодарю ux3sty за многочисленные исправления физики движка
    ЛОЛ, благодарность выписал.

    Ну, что думаешь? Всё равно не сильно импульс гасится?


    GLORY TO KOLOBKI!!!

    20 апреля 2014 - 23:24 / #131
  12. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, Что-то все-равно не очень. Ты вставил написал свой или вставил этот:
    Mass = Mass b2->Mass;
    b2->Velosity.x = b2->Velosity.x *(b2->Mass / Mass);
    b2->Velosity.y = b2->Velosity.y *(b2->Mass / Mass);
    R = sqrt(Mass);// b2->R / 3;
    Velosity = (Velosity*(b2->Mass / Mass) b2->Velosity);

    эффект один и тот же?

    3-х местный самолет "Коротыш"

    20 апреля 2014 - 23:30 / #132
  13. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Velocity.x = ((Mass * Velocity.x) (b2->Mass*b2->Velocity.x)) / (Mass b2->Mass);
    Velocity.y = ((Mass * Velocity.y) (b2->Mass*b2->Velocity.y)) / (Mass b2->Mass);

    эффект один и тот же?

    Да вродь.
    Неа, последний точнее.
    Обновил ссылку.
    Сообщение отредактировал MrKerbMan 20 апреля 2014 - 23:42


    GLORY TO KOLOBKI!!!

    20 апреля 2014 - 23:33 / #133
  14. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, Запустил старую и новую версии на одинаковых параметрах, вообще никакой разницы, по крайней мере для масс 1000,1000,1000

    3-х местный самолет "Коротыш"

    20 апреля 2014 - 23:39 / #134
  15. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Хотя, неоднозначно.

    b2->Velocity.x = b2->Velocity.x *(b2->Mass / Mass);
    b2->Velocity.y = b2->Velocity.y *(b2->Mass / Mass);
    //Velocity.x = ((Mass * Velocity.x) (b2->Mass*b2->Velocity.x)) / (Mass b2->Mass);
    //Velocity.y = ((Mass * Velocity.y) (b2->Mass*b2->Velocity.y)) / (Mass b2->Mass);
    Mass = Mass b2->Mass;
    Velocity = (Velocity*(b2->Mass / Mass) b2->Velocity);
    R = sqrt(Mass);// b2->R / 3;
    //Velocity = (Velocity b2->Velocity);
    Сообщение отредактировал MrKerbMan 20 апреля 2014 - 23:44


    GLORY TO KOLOBKI!!!

    20 апреля 2014 - 23:44 / #135
  16. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, ой, так Mass = Mass b2->Mass; должно в самом начале стоять вроде как
    Ой нет вообще не так.
    Вроде вот так:
    b2->Velocity.x = b2->Velocity.x *(b2->Mass / Mass b2->Mass);
    b2->Velocity.y = b2->Velocity.y *(b2->Mass / Mass b2->Mass);
    Velocity = (Velocity*(b2->Mass / Mass b2->Mass) b2->Velocity);
    Mass = Mass b2->Mass;

    но это по сути тоже самое что и:
    Velocity.x = ((Mass * Velocity.x) (b2->Mass*b2->Velocity.x)) / (Mass b2->Mass);
    Velocity.y = ((Mass * Velocity.y) (b2->Mass*b2->Velocity.y)) / (Mass b2->Mass);
    Mass = Mass b2->Mass;
    Сообщение отредактировал ux3sty 21 апреля 2014 - 00:04

    3-х местный самолет "Коротыш"

    20 апреля 2014 - 23:59 / #136
  17. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    Бессмысленно...

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


    GLORY TO KOLOBKI!!!

    21 апреля 2014 - 00:06 / #137
  18. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, а у тебя отрисовка и расчет, что ли параллельно идут?

    3-х местный самолет "Коротыш"

    21 апреля 2014 - 00:16 / #138
  19. Оффлайн

    MrKerbMan

    Хорошие люди

    Сообщений: 5537

    ux3sty писал:
    MrKerbMan, а у тебя отрисовка и расчет, что ли параллельно идут?

    Нет, сначала просчёт, потом отрисовка. НО ЭТО НЕВАЖНО, ВЕДЬ Я ВСЁ ИСПРАВИЛ! Правда, теперь неделя на оптимизацию уйдёт.
    Ссылка обновлена.

    Блин, рано радуюсь...

    Хотя, вродь всё робит.

    Работает когда как...

    Итак, что я выяснил:
    Примерно до массы, равной 80, работает нормально.
    Потом начинаются глюки со столкновениями. Ну, и вот...


    GLORY TO KOLOBKI!!!

    21 апреля 2014 - 00:44 / #139
  20. Оффлайн

    ux3sty

    Посетители

    Сообщений: 365

    MrKerbMan, Как ты это сделал?)

    3-х местный самолет "Коротыш"

    21 апреля 2014 - 01:10 / #140

Статистика форума, пользователей онлайн: 0 (за последние 10 минут)

---

Администраторы | Модераторы | Хорошие люди | Посетители | Новичок

Создано тем1921 Всего сообщений158031 Пользователей19226 Новый участникUnknownMollusk
Последние сообщения с форума
  • Автор
    Тема в разделе: Новости
    Просмотров: 7
    Ответов: 0
  • Автор
    Тема в разделе: Вопросы по игре
    Просмотров: 1567113
    Ответов: 12701
  • Автор
    Тема в разделе: В ангаре у Боба
    Просмотров: 9565
    Ответов: 55
  • Автор
    Тема в разделе: Технические вопросы
    Просмотров: 25912
    Ответов: 68
    Все сообщения..
    Полный список последних сообщений
    Loading...

    Нашли ошибку?
    Вы можете сообщить об этом администрации.
    Выделив текст нажмите Ctrl+Alt