草庐IT

vectorToTarget

全部标签

c++ - 取 1.0f 或 -1.0f 的 acos 是否合法?

我的代码有一个问题,四处移动的代理突然消失了。这似乎是因为它们的位置突然在x和y轴上变为1.#INF000。我做了一些研究,有人说如果一个值分别超过或低于1和-1,acos可能会发生这种情况,但接着说如果这些值也很接近,它可能会发生。我添加了一个if语句来检查我是否曾经将acos设为1或-1,并且它确实在它们消失之前评估为1几个帧周期,但是我真的不明白能够修复它的问题.任何人都可以阐明这个问题吗?D3DXVECTOR3D3DXVECTOR3Helper::RotToTarget2DPlane(D3DXVECTOR3position,D3DXVECTOR3target)//XYPLANE