> if (((test>=0) && (test<=90)) || ((test>270) && (test<=360))){n_y=1;}
> else {n_y=-1;}我需要三角函数的大小,以便确定落入特定象限的角度的三角函数的符号。
我的计划是用等价的代码替换上面的代码。
下面是我想用伪代码做的事情。
n_y = cos(test) / (magnitude of cos (test)); 这将带给我同样的东西。Abs()只接受整数。任何帮助都是非常感谢的。
发布于 2010-04-18 04:09:00
我不知道你在用什么Abs(),fabs from the C++ standard takes doubles just fine。
但你并不是真的想要数量,因为那样你就会被困在做一个昂贵的除法上。
只需使用signum函数即可。
发布于 2010-04-18 04:46:26
您是否使用#include <cmath>来获取abs的浮点重载
至于查找象限,如果是0 <= test <= 360,并且您想测试90 < test <= 270,则只需使用90 < test && test <= 270。您当前正在测试的两个不连续范围之间存在一个连续范围。但是,您的特定示例在映射0 => 1和270 => -1时对事物进行了不对称的定义。
https://stackoverflow.com/questions/2659834
复制相似问题