gpt4 book ai didi

java - 用 Java 实现里程表

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:32 25 4
gpt4 key购买 nike

我正在考虑用 Java 创建一个里程表风格的应用程序。

基本上我知道我可以使用一系列循环来控制旋转,但我想用数学方法来实现。

因此,如果每个刻度盘从 0 到 9 旋转 10 圈,并且有六个刻度盘,那么如果我的数学正确的话,总共应该旋转 1000000 圈。

Math.pow(10, 6);

我的问题是;跟踪最后一个表盘旋转的最有效方法是什么,因为就像一系列真正的齿轮一样,最后一个表盘每转动十圈,最后一个表盘就会转动一次。

然后从最后一个刻度盘开始的第二个刻度盘每旋转十圈,从最后一个刻度盘开始的第三个刻度盘将旋转,然后所有其他刻度盘将重置回零。

有什么意见或建议吗?

最佳答案

一个建议的实现

没有必要让模型变得更复杂,只是为了机械地重新创建对象。请参阅 John3136 的回答以作证实。

旋转模型可以很简单:

int rotations = 0;

/**
* Increment rotations every rotation
*/
void rotate() {
rotations++;
if (rotations >= Math.pow(10, 6)) // consider extracting as constant
rotations = 0; // reset
}

然后创建 View :

/**
* dial can be from 1 .. 6 (where dial 1 moves every rotation)
*/
int getDialPosition(int dial) {
int pow = Math.pow(10, dial);
return Math.floor((rotations % pow) / (pow / 10));
// above gets the digit at position dial
}

注意事项

  • 将上述模型包装到里程计类中
  • 构建一个每次旋转都会刷新的 View

关于java - 用 Java 实现里程表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9183570/

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