如果语句包含无限数学方程式

时间:2019-01-08 08:18:02

标签: c#

我正在尝试执行代码,以使特定的无限数学条件成立。条件为true,值= 90 + 360X。其中X是整数。所以我正在使用单位圆,并且只希望与正Y轴相等的下降。这是用橙色高亮显示的轴的图片。

enter image description here

例如,角度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?

2 个答案:

答案 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确实在单位圆的第三象限中。希望这一解决方案有一天能对某人有所帮助。