PDA

Просмотр полной версии : Отражение вектора при соударении в другой.


incvizitor
28.10.2011, 21:11
Вектор ударяется в другой. Как найти отраженный вектор?
В наличии вершины обоих векторов. Что то я уже часа 3 туплю, не могу никак разрешить...

AtomicFlasher
29.10.2011, 00:16
Если мячик с импульсом ball налетает на прямую с направляющей wall, то его импульс после отскока станет:

public function f(ball:Point, wall:Point):Point
{
var a:Number = (ball.x * wall.x + ball.y * wall.y) / (ball.length * wall.length);
var k:Number = 2* (ball.length * a / wall.length);
return new Point(wall.x*k - ball.x, wall.y*k - ball.y);
}

-De-
29.10.2011, 01:59
AtomicFlasher, эта формула упрощается до
public function f(ball:Point, wall:Point):Point
{
var k:Number = 2* (ball.x * wall.x + ball.y * wall.y) / (wall.x*wall.x + wall.y*wall.y);
return new Point(wall.x*k - ball.x, wall.y*k - ball.y);
} length - это извлечение корня, ну его.

incvizitor
31.10.2011, 12:55
Я правильно понимаю, что "x" и "y" - нормализированные направления вектора?