Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Отражение вектора при соударении в другой. (http://www.flasher.ru/forum/showthread.php?t=170619)

incvizitor 28.10.2011 21:11

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

AtomicFlasher 29.10.2011 00:16

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

Код AS3:

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, эта формула упрощается до
Код AS3:

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" - нормализированные направления вектора?


Часовой пояс GMT +4, время: 04:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.