求射弹撞击旋转圆的角度
Finding the angle a projectile hits a rotated circle
我正在尝试找出实体被击中的哪一侧
46-135 - 右侧
136-225 - 背面
226-315 - 左侧
316-360 和 0-45 - 正面
https://i.ibb.co/hKz5n9z/Help.png(不能post图片,但这就是我想要的)
我知道实体面对的角度和弹丸击中实体时的角度
我试过类似的东西:
Math.abs(entityRotation - attackRotation) % 360;
Math.abs(180 - entityRotation - attackRotation) % 360;
等等
但我似乎找不到适用于所有角度的方程式。
如果这不可能,当一个角度大于另一个角度时,我可以使用两个不同的方程式。
谢谢:)
如果弹丸始终指向圆心,请尝试下一种方法
(Python代码,使用整数除法//
)
result here
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])
我正在尝试找出实体被击中的哪一侧
46-135 - 右侧
136-225 - 背面
226-315 - 左侧
316-360 和 0-45 - 正面
https://i.ibb.co/hKz5n9z/Help.png(不能post图片,但这就是我想要的)
我知道实体面对的角度和弹丸击中实体时的角度
我试过类似的东西:
Math.abs(entityRotation - attackRotation) % 360;
Math.abs(180 - entityRotation - attackRotation) % 360; 等等
但我似乎找不到适用于所有角度的方程式。
如果这不可能,当一个角度大于另一个角度时,我可以使用两个不同的方程式。
谢谢:)
如果弹丸始终指向圆心,请尝试下一种方法
(Python代码,使用整数除法//
)
result here
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])