Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.04.2013, 13:43
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 1  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
По умолчанию Геометрический вопрос

Друзья, обращаюсь к вас с такой вот интересной задачей (см. прикрепленную картинку). Есть цель, есть пушка. Цель бегает за курсором мыши, пушка постоянно следит за целью в автоматическом режиме. Мне с легкостью удалось реализовать слежение пушки за целью по рис. 1. Но проблема в том, что у пушки оружие смещено относительно центра, и стреляет прямолинейно по отрезку CF (рис. 1). Соответственно пуля всегда проходит мимо цели. Пытаюсь вычислить угол w (рис. 2), на который нужно доворачивать пушку, но что-то все мои алгоритмы не подходят. В ходе "исследования" понял, что чем дальше цель от пушки, тем ближе угол w к углу a, а чем ближе цель к пушке, тем более похож угол w на угол a/2. Можно было бы на этом и остановится, но на средних дальностях идет достаточно серьезная погрешность.

Может найдется кто-то, кто подскажет, как все это посчитать правильно?

Заранее всем спасибо, буду благодарен любой наводке на правильный алгоритм.
Изображения
 

Старый 17.04.2013, 14:17
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
По идее, вы можете переводить точку D, в глобальные координаты и уже их использовать при расчёте поворота пушки, вместо координат самой пушки.

Старый 17.04.2013, 14:18
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 3  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Я так понимаю, задача сводится к нахождению двух углов (около вершины С), которые я пометил одной и двумя линиями. Все треугольники прямоугольные, часть данных известна (кстати, а какие размеры/углы известны?). Вообще, насколько я помню, в решении таких задач правильнле решение прямо вытекает из правильного чертежа. Т.е., чертить до тех пор, пока решение не станет очевидным.
Изображения
 

Старый 17.04.2013, 14:33
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 4  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
Еще немного уточнений: ось вращения пушки - точка А. Точка вылета пули - С. Известные отрезки: АВ, АЕ, АD, т.е. по сути любые отрезки с рис. 1 известны.

Старый 17.04.2013, 14:40
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 5  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Тут похожая тема, только там персонаж поворачивается за курсором, ну а у вас цель, разницы никакой.
Единственное что вам придётся учитывать это расстояние между A и C (которая в том примере не учитывается, и если подвести близко курсор, видно что дуло не направлено прямо на него).

Старый 17.04.2013, 14:59
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 6  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
Цитата:
Сообщение от AlexLucas Посмотреть сообщение
Тут похожая тема, только там персонаж поворачивается за курсором, ну а у вас цель, разницы никакой.
Единственное что вам придётся учитывать это расстояние между A и C (которая в том примере не учитывается, и если подвести близко курсор, видно что дуло не направлено прямо на него).
В приведенном примере как раз описан случай на рис. 1. А как я писал выше - мне нужно приблизиться к рис. 2.

Старый 17.04.2013, 15:11
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 7  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
а если сделать гланым обьектом оружие, а саму пушку добавить в обьект оружия, тогда слежение будет осущетвлять не пушка, а оружие
тогда и вычислять ничего не нужно будет
хотя придется замарочиться с поворотом относительно другого центра
....
сделай танк ^_^
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 17.04.2013, 15:22
australian incognito вне форума Посмотреть профиль Отправить личное сообщение для australian incognito Найти все сообщения от australian incognito
  № 8  
Ответить с цитированием
australian incognito
 
Аватар для australian incognito

Регистрация: Sep 2005
Адрес: Минск
Сообщений: 389
Цитата:
Сообщение от chamele0n Посмотреть сообщение
а если сделать гланым обьектом оружие, а саму пушку добавить в обьект оружия, тогда слежение будет осущетвлять не пушка, а оружие
тогда и вычислять ничего не нужно будет
хотя придется замарочиться с поворотом относительно другого центра
....
сделай танк ^_^
Это не вариант

Старый 17.04.2013, 15:32
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 9  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Может я чего-то упустил, но...
Гипотенузу и катет зеленого треугольника мы знаем, значит можем найти угол.

Собственно, чего это я, можно ограничиться непосредственно треугольником AED, нет?
Изображения
 

Старый 17.04.2013, 15:39
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 10  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Простите, а почему не подошел мой вариант (2 пост)? По идее ведь просчёты минимальны будут.

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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