Находя угол, снаряд поражает повернутый круг - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь выяснить, с какой стороны ударил объект

46-135 - правая сторона

136-225 - обратная сторона

226-315 -левая сторона

316-360 и 0-45 - лицевая сторона

https://i.ibb.co/hKz5n9z/Help.png (Не могу опубликовать изображения, но это то, что я хочу)

Iзнаю угол, с которым сталкивается объект, и угол снаряда, когда он попадает на объект

Я пробовал что-то вроде:

Math.abs (entityRotation - attackRotation)% 360;

Math.abs (180 - entityRotation - attackRotation)% 360;и т.д.

Но я не могу найти уравнение, которое работает для всех углов.

Если это невозможно, я могу использовать два разных уравнения для случаев, когда один угол больше, чем другой.

Спасибо:)

1 Ответ

1 голос
/ 08 апреля 2019

Если снаряд всегда направлен в центр круга, попробуйте следующий подход
(Код Python, использует целочисленное деление //)
результат здесь

print("targdir", " attackdir", "side")
sides = ["front", "right", "back", "left"]
for target in range(0, 361, 45):
    for attack in range(0, 361, 45):
        side = ((attack - target + 585) % 360) // 90
        print(target, attack, sides[side])
...