我正在尝试执行代码,以使特定的无限数学条件成立。条件为true,值= 90 + 360X。其中X是整数。所以我正在使用单位圆,并且只希望与正Y轴相等的下降。这是用橙色高亮显示的轴的图片。
例如,角度90、450、810等会使条件成立。 如您所见,我已经尝试在代码中使用%:
else if (DegreeValue == 90 || ManyRotations90(DegreeValue, 90) == true)
{
Console.WriteLine("Angle(" + DegreeValue + ") lies between the 1st and 2nd quadrant. In other words, it doesn't belong to a specfic section.");
}
static public bool ManyRotations90(double num01, double num02)
{
if (num01 % num02 == 0);
{
return true;
}
return false;
}
即使条件对于这些数字返回true,对于我不需要的数字也将返回true。 //这是很好的540%90 ==0。但是270%90 == 0 //这很糟糕。有没有办法仅适用于90 + 360X?
答案 0 :(得分:6)
您正在滥用%
运算符。您需要将度数除以360(完整的圆圈),然后检查余数是否为90:
return DegreeValue % 360 == 90;
答案 1 :(得分:0)
我想出了如何以负角度进行这项工作。正角可以使用@Mureinik的解决方案找到。因此,可以说我想确定负角是否在第三象限中,我该怎么做?
else if (
NegCheck(DegreeValue) == true //This just check to see if the angle is negtive
&& 360 + DegreeValue > 180
&& 360 + DegreeValue < 270
|| Between180_270(DegreeValue) == true)
{
Console.WriteLine("Angle(" + DegreeValue + ") lies in the 3nd quadrant");
}
static public bool Between180_270(double Degreevalue01)
{
if (NegCheck(Degreevalue01) == true)
{
double step = 0.0;
step = (360 + Degreevalue01) % 360;
step = 360 + step;
if (step > 180 && step < 270)
{
return true;
}
}
return false;
}
因此,如果角度为-1175,我们会将其添加到360并得到-815。然后,在执行%运算之后,该值将为-95。然后加上360,我们得到265。角度265确实在单位圆的第三象限中。希望这一解决方案有一天能对某人有所帮助。