gpt4 book ai didi

c++ - 如何找出玩家在xyz平面的前向坐标?

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:17 25 4
gpt4 key购买 nike

我目前正在为一款游戏制作模组,我能够获得玩家的 XYZ 坐标以及他们面对的方向(一个介于 0 到 360 度之间的值)。我需要使用此信息来根据角色面向的方向确定角色前面的坐标。

例如:如果 x = 0、y = 0、z = 0 并且角色面向 0 度,即南方。假设 z 轴从北到南,那么如果角色向前走一个单位,他们的新坐标将是 x = 0,y = 0,z = -1。

最佳答案

我假设北为 +Z,东为 +X。此外,方向 0 是南,90 是西。

vec3 DegreeToDirection (float degs) {
float rads = 3.1415926535f / 180 * degs;
float s = sinf(rads), c = cosf(rads);
vec3 ret = {-s, 0, -c};
return ret;
}

现在只需将其添加到您当前的位置即可。

编辑:这里是对 OP 实际有效的评论中的修改代码:(请注意 X 返回值没有否定,这可能意味着我对 X 轴的假设是错误的。 )

void DegreeToDirection (float degs, float out [3]) {
float rads = 3.1415926535f / 180 * degs;
out[0] = sinf(rads);
out[1] = 0.0f;
out[2] = -cosf(rads);
}

关于c++ - 如何找出玩家在xyz平面的前向坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46008941/

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