gpt4 book ai didi

c++ - 3D Vector (X, Y, Z) 看看Vector

转载 作者:搜寻专家 更新时间:2023-10-31 01:55:39 27 4
gpt4 key购买 nike

我正在使用源 sdk(它使用 C++)并且我想旋转一个实体的角度以便它看着另一个实体。

一个实体可以被看作是一个游戏对象或类似的东西,并且在世界中有一个位置( vector )和一个角度( vector )。

我可以使用 SetAbsAngles 旋转实体,它以 QAngle(基本上是一个 vector )作为参数。

Explanation of what I want and have

最佳答案

这是一些伪代码:

vec3 p = entity2->getPosition();
vec3 r = entity1->getPosition();
float xdistance = p[0] - r[0];
float ydistance = p[1] - r[1];
float zdistance = p[2] - r[2];
float xzdistance = sqrt(xdistance * xdistance + zdistance * zdistance);
entitity1->setHeading(atan2(xdistance, zdistance)); // rotation around y
entitity1->setPitch(-atan2(ydistance, xzdistance)); // rotation around x
entitity1->setBank(0); // rotation around z

z 旋转设置为 0,因为它无法确定。您可以根据需要自由设置。

这在一个坐标系中工作,z 向前,y 向上,x 向右。如果您使用不同的系统,您可能需要调整一些标志。

关于c++ - 3D Vector (X, Y, Z) 看看Vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8208789/

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