Исходя из моего предыдущего вопроса : у меня мяч вполне реально отскакивает от поверхностей, в которые он попадает. Теперь я хотел бы заставить его вращаться от трения удара .
Показать это достаточно просто: я поворачиваю шар на его угловую скорость каждый тик и применяю то же вращение, когда он отображается.
Когда мяч попадает в стену, я знаю, что скорость вращения зависит от ...
- начальная скорость мяча при ударе о поверхность
- то коэффициенты трения шара и поверхностных (физических констант)
- угол падения (угол между вектором скорости входящего шара и нормали к поверхности).
Угол падения аппроксимируется точечным произведением векторов скорости удара и выхода шара. (1 означает высокое вращение, -1 означает отсутствие вращения, а все остальное относительно между ними)
Умножив все вышеперечисленное вместе и убедившись, что они затем были преобразованы в диапазон 0 - 1 и умножен на максимальную скорость вращения, мяч, казалось, отреагировал на скорость вращения, как и ожидалось. За исключением одного: он всегда будет вращаться по часовой стрелке (из-за положительных значений).
Это хороший метод? Можете ли вы придумать более простой способ?
Если этот метод выглядит хорошо, что я пропускаю? Как узнать, когда шар должен вращаться против часовой стрелки?