![]() |
Она некорректна, потому что стена это отрезок, а не вектор. Если матеманически, то надо посчитать проекцию вектора (допустим A) на стену (получим вектор B) , и проекцию вектора на нормаль к стене (вектор C), потом умножить скалярно С на -1 и сложить B и C. Будет искомый вектор.
|
botbot, вы ошибаетесь. Стене все равно. В выше указанной книжке разбирается этот пример. Достаточно знать исходный вектор.
|
@TanaTiX
стена не может быть вектором, ну никак. И не понятно, что Вы имеете ввиду под "исходным вектором". ИМО, botbot все правильно изложил. |
Ещё покрутив в голове задачку, придумал немного более быстрое решение:
A - исходный вектор B - проекция вектора на стенку Отражённый вектор = 2*B - A. МОжет можно ещё как-то упростить, но я думаю уже хватит. Как найти проекцию вектора на стенку надо говорить? |
Цитата:
|
gloomyBrain, ага, чуток я заработался.
|
Вон есть уже в том коде вектора, что я дал:
Код AS3:
Код AS3:
А потом Код AS3:
|
если нужно получить зеркальный отскок от стены заданной вектором, то можно: найти угл между нашим вектором и вектором стены и поверунуть наш вектор на 2 таких угла.
UPD: в общем вот мой 2D вектор: (есть сериализация, и лишние вычисления(X Y length angle - пересчитываются все разом, кто хочет может реализовать отложенные вычисления - лично мне было лень, н Код AS3:
|
| Часовой пояс GMT +4, время: 22:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.