Java 为什么sqrt乘以cos返回错误的值

Java 为什么sqrt乘以cos返回错误的值,java,math,sqrt,trigonometry,Java,Math,Sqrt,Trigonometry,我正在编写一个计算器,用来计算旋转点的坐标。(灵感来源于youtube上的数学教程) 我陷入困境的部分是安西和安西的回归。它返回的不是4.0和3.6,而是不正确的答案。(新威尔士合作社:-3.0853888289108733,-4.413657867849748) 我无法理解这两行中发生了什么错误 static void tourner() { Scanner tournsc = new Scanner(System.in); double coordx,

我正在编写一个计算器,用来计算旋转点的坐标。(灵感来源于youtube上的数学教程)

我陷入困境的部分是安西和安西的回归。它返回的不是4.0和3.6,而是不正确的答案。(新威尔士合作社:-3.0853888289108733,-4.413657867849748)

我无法理解这两行中发生了什么错误

static void tourner()
    {
        Scanner tournsc = new Scanner(System.in);
        double coordx, coordy, roattiondeg, ansx, ansy, angle, triangleh, newangle;
        //Test input : X 5, Y 2, rotation deg 20
        System.out.println("Coord X :");
        coordx = tournsc.nextInt();
        System.out.println("Coord Y :");
        coordy = tournsc.nextInt();

        System.out.println("Degre : ");
        roattiondeg = tournsc.nextInt();

        triangleh = ((Math.pow(coordx, 2)) + (Math.pow(coordy, 2)));

        angle = Math.toDegrees(Math.atan(coordy/coordx));
        newangle = roattiondeg + angle;
        ansx = Math.sqrt(triangleh)*Math.cos(newangle);
        ansy = Math.sqrt(triangleh)*Math.sin(newangle);
        System.out.println("Nouvelles coordoner : " + ansx + "," + ansy);


    }
问:为什么ansx和ansy在我的现实生活计算器上给出了很好的答案,但在程序中却错了


thx以获取帮助。

库函数
sin
cos
希望它们的输入以弧度为单位,但您传递的是度

只需从输入开始以弧度为单位,您就不会有问题:

    roattiondeg = Math.toRadians(tournsc.nextInt());

    triangleh = ((Math.pow(coordx, 2)) + (Math.pow(coordy, 2)));

    angle = Math.atan(coordy/coordx));
    newangle = roattiondeg + angle;
    ansx = Math.sqrt(triangleh)*Math.cos(newangle);
    ansy = Math.sqrt(triangleh)*Math.sin(newangle);
    System.out.println("Nouvelles coordoner : " + ansx + "," + ansy);