找到弧度反射角

Owe*_*wen 2 math flash actionscript-3


我正在编写一个简单的Flash游戏,只是为了学习flash并改进我的数学,但是我对Radians非常困惑,因为我有新的东西.

到目前为止我所做的就是使用你的鼠标(点击和释放)你用弧度向那个方向射球.现在我想要发生的是当球击中墙壁时它会以反射角度反弹.例如.如果球击中以-0.65的弧度行进的右侧墙,它应以约-2.5的弧度反弹回来

有些人可以向我解释我是怎么做的吗?谢谢

Ish*_*tar 8

如果你使用弧度,你应该(总是)在Pi中表达它们,简单地用Pi除.让工作和理解更容易.

-0.65 rad = -0.207*Pi rad
-2.5 rad = -0.796*Pi rad
Run Code Online (Sandbox Code Playgroud)

一个完整的圆是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
Run Code Online (Sandbox Code Playgroud)

有关图像和一些解释,请参阅维基百科上的反射.这给出了水平墙的这个公式:

r = 0.5*Pi - (i + Pi - 0.5*Pi)
r = 2*Pi - i 
r = -i //subtract 2*Pi
Run Code Online (Sandbox Code Playgroud)

例如

i = -0.207*Pi //gives
r = 0.207*Pi //for a horizontal wall
Run Code Online (Sandbox Code Playgroud)

垂直墙类似:

r = 0 - (i + Pi - 0)
r = -Pi - i
Run Code Online (Sandbox Code Playgroud)

编辑我意识到这是不正确的.要使公式起作用,i必须指向相反的方向.修正了它,希望它现在是正确的.如果我以后有时间,我会附上解释错误和解决方案的图片.