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

问题描述:

我正在开发一个描述汽车行驶距离的Java项目。功能驱动器有三个参数:一个用于行驶距离,一个用于x比率,另一个用于y比率。 下面是函数的描述:给定距离和比率更新X和Y坐标?

驱动器(INT距离,双xRatio,双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; 

    } 

我有辆车的最终坐标,但我不知道如何将气体如何得到更新,开始工作了当汽车行驶时,以及如果汽油用尽时如何停止。任何帮助,这将不胜感激。

+0

这是一个数学问题或编程问题? – shmosel

+0

你为什么要返回0? –

+0

我都猜到了。我希望找到的一件事是使用xRatio,yRatio和距离来获得结束坐标的正确数学方法。我相信我现在拥有的是做这部分的正确方法,但如果不是,我想知道。 现在作为占位符返回0。我不知道实际行进的距离,这是该方法应该返回的。 – CooperHudnall

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; 
} 
}