acos(-1)或者acos(1)结果为nan

原因分析

出现该错误的原因可能是精度问题,acos(value)中value值可能非常接近-1或者1,但是超出了[-1, 1],故得到nan的结果。

解决方案

acosf(std::min(std::max(QVector3D::dotProduct(from, to),-1.0f),1.0f)))


版权声明:本文为perfer258原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。