gpt4 book ai didi

c++ - Atan2 表 C++

转载 作者:行者123 更新时间:2023-11-28 00:55:43 25 4
gpt4 key购买 nike

我正在尝试计算二维空间中两点的角度。它适用于以下内容:

double angle;
x = player->x - x;
z = player->z - y;

angle = atan2 (x, y);
angle *= (180.0 / M_PI);
if(angle < 0) angle += 360;
if(angle >= 360) angle -= 360;

return angle;

但是我想使用表格以获得更好的结果:

x = player->x - x;
z = player->y - y;

return atanTable[x+32][y+32];

初始化:

int xp = -32;
int yp = -32;
for (int x = 0; x < 64; x++, xp++)
for (int y = 0; y < 64; y++, yp++){
double angle;

angle = atan2 (xp, yp);
angle *= (180.0 / M_PI);
if(angle < 0) angle += 360;
if(angle >= 360) angle -= 360;
atanTable[x][y] = angle;
}

仅针对 x 和 y 的值 -32 到 32 计算角度。

然而,该表未正确生成。我得到的值只有 359 和 0 左右,而我应该得到 0 到 360 度的范围。

我是否以某种方式滥用了 atan2?

最佳答案

您需要在第一个循环内而不是之前重置 yp

int xp = -32;
for (int x = 0; x < 64; x++, xp++)
{
int yp = -32; // Note, needs to be reset each time x changes.
for (int y = 0; y < 64; y++, yp++)
{

关于c++ - Atan2 表 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11472722/

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