По сути, это всего лишь математический вопрос.
Вот с чем у меня проблемы ... Мне трудно придумать, как сформулировать вопрос, так что терпите меня.По сути, я думаю, что мне нужно использовать некоторые сложные математические для этого, но я не знаю, что мне нужно.
Я буду использовать некоторые иллюстрации, чтобы прояснить это. Предотвращение спама не делаетпозвольте мне публиковать картинки ... Вот простое концептуальное изображение: http://radleygh.com/images/gimp-2_2011-057-00-57-26-40.bmp
Цель: Определить, лежат ли несколько объектов в конусе на плоскости 2D
КонусСвойства: Положение (x, y) Угол (0-359) Распространение (0-359, aka Width) Расстояние (0 ++)
Я могу определить коричневатые линии, используя простой математический бит:
Angle_A = Angle + (Spread / 2) Angle_B = Angle - (Spread / 2) Angle_Target = Point_Direction (origin, object_position)
Теперь я подумал сравнить их с положением каждого объекта с помощьюпростое выражение if / then:
If (Angle_A> Angle_Target) && (Angle_B Angle_Target находится между A и B
Это работает ... до Angle_Aили Angle_B пройти порог 0-360.0 * находится между 45 * и 315 * ... но приведенное выше выражение if не сработает.Затем мы можем определить, какое направление проверять, основываясь на размере конуса ...
А что, если эффект конуса больше, чем конус 180 *?
Я не уверен вответ.Я почти уверен, что должен использовать радианы ... Но я не понимаю концепцию радианов.если кто-то может указать мне правильное направление, возможно, покажите мне где-нибудь пример, это было бы замечательно!
В то же время я продолжу свое собственное исследование.