原因分析
出现该错误的原因可能是精度问题,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版权协议,转载请附上原文出处链接和本声明。
出现该错误的原因可能是精度问题,acos(value)中value值可能非常接近-1或者1,但是超出了[-1, 1],故得到nan的结果。
acosf(std::min(std::max(QVector3D::dotProduct(from, to),-1.0f),1.0f)))