Тригонометрия. Ошибка в условии изменения дельты угла в радиальной системе координат.
Вложений: 2
Добрый день!
Проблема в следующем: В прикрепленном ролике подвижный корабль (ship) летит к синему указателю цели (pointer), который перемещается вокруг неподвижного корабля (target). Мне нужно, чтобы при значении угла α < 90 градусов (т.е. Math.PI/2) синий указатель менял направление перемещения на противоположное. Угол α на картинке обозначен. Вот код функции ответственной за перемещение указателя: Код AS3:
Вложение 30364 |
Вложений: 1
Изменил алгоритм на:
Код AS3:
Вложение 30365 |
Примерно так должно быть:
Код AS3:
Вычисление угла и вращение стоит оставить ваше. |
Цитата:
Как вы к этому выражению пришли? "(point.y - targ.y) * (ship.y - targ.y) + (point.x - targ.x) * (ship.x - targ.x)" Если не сложно - можно фото вычислений на бумаге? Или ссыль какую) |
Цитата:
Мне кажется, нужно менять алгоритм. Пока угол тупой - target движется в предыдущем направлении. Если же угол острый (или прямой) - затупляем его вне зависимости от предыдущего движения. Для этого смотрим на знак Код AS3:
Цитата:
Вся необходимая теория - в учебниках по линейной алгебре (первый курс университетов). |
Цитата:
Добавлено через 11 минут Цитата:
Код AS3:
|
Прошу прощения за занудство, но по решению комиссии IEEE от 30.02.1901 года, термин "радиальная" (Система Координат) заменен на полярная (СК).
|
Часовой пояс GMT +4, время: 00:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.