Отскок мяча от поверхности

Сейчас я нахожусь в процессе написания такой игры, как Breakout, и мне было интересно, как правильно отскочить мяч от поверхности.

Я пошел наивным способом поворота скорости на 90 градусов, который был:

[vx, vy] -> [-vy, vx]

Что (неудивительно) не сработало так хорошо. Если я знаю положение и скорость мяча, а также точку, в которую попадет мяч (но вместо этого он отскочит), как я могу отскочить от этой точки?

Ограничения:

Я использую целочисленную математику (нигде нет FP)Все мои поверхности - простые плоские поверхности (вертикальные, горизонтальные или блочные)Я только хочу отскочить под углом 90 градусовВсе столкновения являются чисто упругими (это прорыв - не нужно трение и т. Д.)

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

Спасибо!

Ответы на вопрос(0)

Ваш ответ на вопрос