![]() |
Геометрический вопрос
Вложений: 1
Друзья, обращаюсь к вас с такой вот интересной задачей (см. прикрепленную картинку). Есть цель, есть пушка. Цель бегает за курсором мыши, пушка постоянно следит за целью в автоматическом режиме. Мне с легкостью удалось реализовать слежение пушки за целью по рис. 1. Но проблема в том, что у пушки оружие смещено относительно центра, и стреляет прямолинейно по отрезку CF (рис. 1). Соответственно пуля всегда проходит мимо цели. Пытаюсь вычислить угол w (рис. 2), на который нужно доворачивать пушку, но что-то все мои алгоритмы не подходят. В ходе "исследования" понял, что чем дальше цель от пушки, тем ближе угол w к углу a, а чем ближе цель к пушке, тем более похож угол w на угол a/2. Можно было бы на этом и остановится, но на средних дальностях идет достаточно серьезная погрешность.
Может найдется кто-то, кто подскажет, как все это посчитать правильно? Заранее всем спасибо, буду благодарен любой наводке на правильный алгоритм. |
По идее, вы можете переводить точку D, в глобальные координаты и уже их использовать при расчёте поворота пушки, вместо координат самой пушки.
|
Вложений: 1
Я так понимаю, задача сводится к нахождению двух углов (около вершины С), которые я пометил одной и двумя линиями. Все треугольники прямоугольные, часть данных известна (кстати, а какие размеры/углы известны?). Вообще, насколько я помню, в решении таких задач правильнле решение прямо вытекает из правильного чертежа. Т.е., чертить до тех пор, пока решение не станет очевидным. :)
|
Еще немного уточнений: ось вращения пушки - точка А. Точка вылета пули - С. Известные отрезки: АВ, АЕ, АD, т.е. по сути любые отрезки с рис. 1 известны.
|
Тут похожая тема, только там персонаж поворачивается за курсором, ну а у вас цель, разницы никакой.
Единственное что вам придётся учитывать это расстояние между A и C (которая в том примере не учитывается, и если подвести близко курсор, видно что дуло не направлено прямо на него). |
Цитата:
|
а если сделать гланым обьектом оружие, а саму пушку добавить в обьект оружия, тогда слежение будет осущетвлять не пушка, а оружие
тогда и вычислять ничего не нужно будет хотя придется замарочиться с поворотом относительно другого центра .... сделай танк ^_^ |
Цитата:
|
Вложений: 1
Может я чего-то упустил, но...
Гипотенузу и катет зеленого треугольника мы знаем, значит можем найти угол. Собственно, чего это я, можно ограничиться непосредственно треугольником AED, нет? |
Простите, а почему не подошел мой вариант (2 пост)? По идее ведь просчёты минимальны будут.
|
| Часовой пояс GMT +4, время: 00:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.