Java 以度为单位计算输入和输出的触发函数

Java 以度为单位计算输入和输出的触发函数,java,math,cross-product,Java,Math,Cross Product,我正试图为一些计算作业制作一个计算器,但信息是以度为单位给出的,答案必须以度为单位。我试着用Math.toDegrees和Math.toRadians,但答案不正确 public static double crossProduct() { Scanner in = new Scanner(System.in); System.out.println("enter angle in degrees"); double angle = in.nextDouble();

我正试图为一些计算作业制作一个计算器,但信息是以度为单位给出的,答案必须以度为单位。我试着用Math.toDegrees和Math.toRadians,但答案不正确

public static double crossProduct() {
    Scanner in = new Scanner(System.in);

    System.out.println("enter angle in degrees");
    double angle = in.nextDouble();

    System.out.println("x1 = ");
    double x1 = in.nextDouble();
    System.out.println("y1 = ");
    double y1 = in.nextDouble();
    System.out.println("z1 = ");
    double z1 = in.nextDouble();
    System.out.println("");
    System.out.println("x2 = ");
    double x2 = in.nextDouble();
    System.out.println("y2 = ");
    double y2 = in.nextDouble();
    System.out.println("z2 = ");
    double z2 = in.nextDouble();

    double mag1 = Math.sqrt((x1 * x1) + (y1 * y1) + (z1 * z1));
    double mag2 = Math.sqrt((x2 * x2) + (y2 * y2) + (z2 * z2));

    double res = mag1 * mag2 * Math.toDegrees(Math.sin(Math.toRadians(angle)));      

    System.out.println("cross product = " + res);
    return res;
}
输入和角度=90度时,答案应为10。相反,它返回:

572.9577951308232

有什么想法吗


编辑:另外,如果有人有更好/更短的方法输入组件,那将是令人惊讶的。

交叉积是一个不以度表示的数字。在将角度传递给
Math.sin
之前,需要将角度转换为弧度,但将结果转换回度是不正确的

double res = mag1 * mag2 * Math.sin(Math.toRadians(angle));      

叉积是一个不以度表示的数字。在将角度传递给
Math.sin
之前,需要将角度转换为弧度,但将结果转换回度是不正确的

double res = mag1 * mag2 * Math.sin(Math.toRadians(angle));      

为什么要将sin返回值转换为度?因为答案必须以度为单位。为什么要将sin返回值转换为度?因为答案必须以度为单位。@yazan角度以度、弧度、梯度为单位。另一方面,叉积不是角度,所以它不是以角度为单位测量的。您不应该将不代表角度的数字转换为任何角度单位,因为结果没有意义。@yazan角度是以度、弧度、梯度为单位测量的。另一方面,叉积不是角度,所以它不是以角度为单位测量的。不应将不表示角度的数字转换为任何角度单位,因为结果没有意义。