给定距离和比率更新X和Y坐标?

时间:2017-10-20 01:21:06

标签: java math

我正在开发一个用Java描述一辆驾驶一定距离的汽车的项目。功能驱动器有三个参数:一个用于行进距离,一个用于x比率,一个用于y比率。 以下是该功能的说明:

  

drive(int distance,double xRatio,double yRatio)应该采用   作为整数行进的期望距离和两个双倍值   它们一起指定方向作为水平与...的比率   垂直距离。例如,如果xRatio = 1且yRatio = 2,则为   每1个单位向右(正x),汽车将行驶2个单位   向上(正y)。 xRatio和yRatio的负值对应于   分别向左和向下移动。鉴于距离和方向,   此方法应正确计算结束坐标   (截断为整数)。它也应该正确地减去金额   使用的燃料。如果指定的距离要求大于   汽车目前拥有的燃料量,汽车应该如此行驶   尽管它可以,直到它为空并将此文本打印到控制台:   "驾驶x英里后驶出汽油。" (具有正确的值   代替x)。该方法应返回英里数   这实际上是被驱动的。

以下是我到目前为止的驱动功能:

public double drive(int distance, double xRatio, double yRatio)
    {
        double a = xRatio;
        double b = yRatio;
        double r = 0;

        r = (a*a) + (b*b);
        r = Math.sqrt(r);

        double finalX = (xRatio * distance) / r;
        double finalY = (yRatio * distance) / r;

        return 0;

    }

我有汽车的最终坐标,但我不知道如何开始计算汽车如何在汽车行驶时更新燃气以及如何在汽油耗尽时停止燃气。任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

gasRemaining是一个变量,表示气体将让你开车的剩余里程

public double drive(int distance, double xRatio, double yRatio)
{
    double a = xRatio;
    double b = yRatio;
    double r = 0;

    r = (a*a) + (b*b);
    r = Math.sqrt(r);

if (distance > gasRemaining){
    system.out.println("Ran out of gas after driving " + gasRemaining + " miles");


    double finalX = (xRatio * gasRemaining) / r;
    double finalY = (yRatio * gasRemaining) / r;

    gasRemaining = 0;

    return 0;
}

else {
    double finalX = (xRatio * distance) / r;
    double finalY = (yRatio * distance) / r;

    gasRemaining = gasRemaining - distance;

    return 0;  
}
}