我正在编写一个简单的 Flash 游戏,只是为了学习 Flash 并提高我的数学能力,但我对弧度感到非常困惑,因为这对我来说是新的。
到目前为止,我所做的是使用鼠标(单击并释放)使用弧度向该方向射出一个球。现在我想要发生的是,当球撞到墙壁时,它会以反射角反弹。例如。如果球以 -0.65 弧度撞击右侧墙壁,它应该以约 -2.5 弧度反弹
有人可以向我解释一下我是如何做到这一点的吗?
谢谢
如果您使用弧度,则应该(始终)用 Pi 表示它们,只需除以 Pi 即可。使其更容易使用和理解。
-0.65 rad = -0.207*Pi rad
-2.5 rad = -0.796*Pi rad
一个完整的圆是 2*Pi。水平面的法线为 0.5*Pi(或 -0.5*Pi)。
normal = 0.5*Pi
angle of incidence = i + Pi - 0.5*Pi //EDIT: +Pi, need to invert the direction
angle of reflection = 0.5*Pi - angle of incidence
See 反射 http://en.wikipedia.org/wiki/Reflection_%28physics%29在维基百科上查看图像和一些解释。这给出了这个公式水平的 wall:
r = 0.5*Pi - (i + Pi - 0.5*Pi)
r = 2*Pi - i
r = -i //subtract 2*Pi
例如
i = -0.207*Pi //gives
r = 0.207*Pi //for a horizontal wall
类似的vertical wall:
r = 0 - (i + Pi - 0)
r = -Pi - i
EDIT我意识到这是不正确的。为了使公式发挥作用,i
必须完全指向相反的方向。已修复,希望现在是正确的。如果稍后有时间,我将附上一张解释错误和解决方案的图片。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)