gpt4 book ai didi

java - 如何计算对角线速度?

转载 作者:行者123 更新时间:2023-11-30 05:57:40 24 4
gpt4 key购买 nike

我正在编写一个游戏来练习一些编程,我遇到了这个问题。在我的游戏中,屏幕上有圆圈。当用户点击屏幕时,圆圈应该远离点击。我获得了按下鼠标按钮的点的 x 和 y 位置,并且获得了每个 cicle 对象的 x 和 y 位置。

我用以下代码找到了圆的中心

float cx = circle.getX()+circle.getRadius();
float cy = circle.getY()+circle.getRadius();

为了找到从圆的边缘到鼠标点击的距离,我这样做了

float distance = (float) Math.sqrt( ((cx-x)*(cx-x)) + ((cy-y)*(cy-y)) ) - circle.getRadius();

现在,在检查圆是否足够接近点击位置后,如何将 1f 的速度分割为圆的变量 vx 和 vy?

编辑:实际上我想要加速,但我想都是一样的。

最佳答案

这听起来像是 java.lang.Math 中的 sincos 的工作:http://download.oracle.com/javase/6/docs/api/java/lang/Math.html .

一旦您知道总速度(上面示例中的1f)和角度(以弧度为单位),速度的水平分量就是v * cos(angle),垂直分量为v * sin(angle)

如果您想将其移开,您可能需要取消该角度。

要根据水平和垂直距离计算角度,请使用 atan2

顺便说一句,如果您不想取不必要的平方根,并且想避免像三角函数那样计算级数的成本,请查看 http://www.youtube.com/user/njwildberger#p/u/368/9wd0i44vK04 .

关于java - 如何计算对角线速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5306324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com