gpt4 book ai didi

android - 接近 2D 位置

转载 作者:行者123 更新时间:2023-11-29 22:24:10 27 4
gpt4 key购买 nike

我开始研究一个概念,该概念要求我找到一种方法,以给定的速度将矩形移向给定的点。我正在为 Android 开发,所以这对速度非常关键(它也将针对可能的数百个对象计算每一帧。)

我能想到的解决方案如下:

float diff_x = x2 - x1;
float diff_y = y2 - y1;
float length = sqrt((diff_x * diff_x) + (diff_y * diff_y));
float dir_x = diff_x / len;
float dir_y = diff_y / len;

float move_x = dir_x * MOVE_SPEED;
float move_y = dir_y * MOVE_SPEED;

如您所见,这种方法需要一个平方根,我知道这非常昂贵。我想到了一个替代方案,它使用三角函数,但它也很昂贵。

float diff_x = x2 - x1;
float diff_y = y2 - y1;
float angle = atan2(diff_y, diff_x);

float move_x = sin(angle) * MOVE_SPEED;
float move_y = cos(angle) * MOVE_SPEED;

还有其他方法吗?如果不是,我的哪个解决方案会更快?感谢您的帮助。

最佳答案

您可以使用的一个非常常见的技巧是将所有内容的平方/2 的幂/^2

用这种方式而不是使用 sqrt,您只需使用

length = (diff_x * diff_x) + (diff_y * diff_y);
diff_x*diff_x/length

关于android - 接近 2D 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6405583/

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