要计算旋转矩形边界框的左上角(例如从旋转矩形计算边界框坐标),我试图根据旋转角度采取不同的行动(以确定象限 0..90°..180° ..270°..360°),以度为单位。角度转换为弧度以与 PI 进行比较:
// http://codepad.org/zCxKJy30
#include <iostream>
#include "math.h"
using namespace std;
int main()
{
float deg = 90.0;
float rad = deg / 360.0 * 2.0 * M_PI;
if( rad <= M_PI/2.0)
{
cout << "less or equal";
}
else
{
cout << "larger";
}
return 0;
}
我希望条件为真,但事实并非如此。
我想知道是否有一个简单的解决方案,不像如何以度数计算正确舍入的三角函数?以及如何解释反三角(和 sqrt)函数(在 C 中)的浮点算术中的舍入误差?建议。
我只是尝试使用 double 类型,然后比较按预期工作:http ://codepad.org/UHcee1RE
为什么增加精度会导致“正确”评估?