1

要计算旋转矩形边界框的左上角(例如从旋转矩形计算边界框坐标),我试图根据旋转角度采取不同的行动(以确定象限 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

为什么增加精度会导致“正确”评估?

4

0 回答 0