gpt4 book ai didi

java - 数学问题(在一个循环内增加和减少两个变量)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:46 25 4
gpt4 key购买 nike

我有一个 for 循环,在该循环中,整数 x 将从 533 增加到 813。这意味着 280 增量。在同一个循环中,当上述情况发生时,我想将 y 的值从 300 减少到 200。这意味着当 x 为 533 时,y 必须为 300,当 x 为 813 时,y 必须为 200。我知道这可以通过在每次迭代中将 y 的值减少 100/280 来实现。但两者都是整数。

这是我使用的一些代码示例,但它不起作用。:

for(int i = 0; i < b.getSize(); i++) {
x = b.getCar(i).getPosX();
b.getCar(i).setPosX(++x);
if(x >= ((getWidth() / 2) - 140) && x < ((getWidth() / 2) + 140)){
y = b.getCar(i).getPosY();
y = (double)(y - (10.0f / 28.0f));
b.getCar(i).setPosY((int)y);
}
}

我怎么可能这样做。谢谢!

最佳答案

有两种解决方案,一种是简单的,一种是复杂的。最简单的:

y = yoff + (int)( (double) height * x / width )

其中 yoff = 300,height = -100,width = 813-533。基本上,您执行浮点运算,然后对结果进行舍入。

或者,可以使用 Bresenham line algorithm 使用纯整数数学来完成相同的操作。但这需要更多的代码。

关于java - 数学问题(在一个循环内增加和减少两个变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13344808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com