java-计算d跳球的度数

java-计算d跳球的度数,第1张

概述我正在做一个简单的突破游戏,当球碰到顶部边界时,如何计算角度存在一些问题.当球以180度的角度向上移动时,它会以0度的角度向下反d.但是,当球以170度的角度向上移动时,则应该以镜像角度(例如10度)向下d回.我可以将其计算为180-170=10度,但是如果球以190度的角度向上运动怎么办!

我正在做一个简单的突破游戏,当球碰到顶部边界时,如何计算角度存在一些问题.当球以180度的角度向上移动时,它会以0度的角度向下反d.但是,当球以170度的角度向上移动时,则应该以镜像角度(例如10度)向下d回.我可以将其计算为180-170 = 10度,但是如果球以190度的角度向上运动怎么办!然后它应该以350度的角度向下反d,但我不知道该如何计算!

有没有简单的方法可以计算或反映球的向上移动角度的值?由于我数学不好,因此需要一些帮助!谢谢!

编辑:
我像这样移动球:

xPos += speed * Math.sin(Math.toradians(direction));yPos += speed * Math.cos(Math.toradians(direction));

解决方法:

要回答有关角度和反射的问题:

>确定角度测量系统.您告诉我们,向上移动的球的角度为180°,所以我想0°指向下方,并且该角度沿逆时针方向增大(90°指向右侧等).保持一致很重要.令d为该系统中球的运动角度.
>定义边界法线向量的角度.如果顶部的边界是水平的,则其法向矢量垂直于该边界,并且具有0°的角度(在点1定义的测量系统中).令n为该角度.垂直边界的n = 90°.
>球的出射角o表示为:

o = 2 * n-d-180°

请注意,您可能必须对此角度进行归一化,即您向o添加360°/从o减去360°,直到0°<= o< 360°.
d = 190°,n = 0°的示例:

o = 2*0° - 190° - 180° = -370°

如预期的那样,这将导致归一化后o = 350°.

总结

以上是内存溢出为你收集整理的java-计算d跳球度数全部内容,希望文章能够帮你解决java-计算d跳球的度数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1211147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存