如何使时钟秒针每秒移动 4 jumps/ticks?

How do I make a clock second hand move with 4 jumps/ticks per second?

编辑:需要帮助才能获得每秒 3 个刻度,但由于分数的原因这是不可能的。仔细检查现实生活中的时钟,我意识到它实际上每秒移动 4 个刻度,我认为四分之一秒是均匀的,应该能够准确。更新了问题,因为我也无法让它工作:

我正在构建一个时钟,它具有三种秒针移动方式选项。我已经成功地让秒针每秒移动 6°(每秒 1 "tick")和一个无缝扫描选项(每毫秒 0.006°)。但我无法让我的公式适用于我的第三个选项:让秒针每秒精确移动 4 次,即每四分之一秒移动 1.5°)。

这是二手代码行(我稍后使用 CGAffiateTransform,因此弧度):

let quarterSecond = round(millisecond * 4.0 / 1000.0)

let tickingSeconds = (((1.5 * π / 180) * quarterSecond) + ((6.0 * π / 180) * second))

这是我想要的,但我不喜欢 round,因为它使运动不准确。整个计时器间隔设置为 0.001,我很难相信你不能让秒针每秒精确移动 4 "ticks" 而不时不时地做一些不均匀的抽动。

有什么想法吗?

您直觉上认为滴答的是您的表达式更改值的频率。

在这里,除了 second 之外,您的整个表达式都是不变的。这意味着您的表情只能在 second 更改时更改。如果是整数,则只能每秒变化。

您需要一个每秒更改三次的变量,您可以使用 millisecond 和截断(删除小数部分)对其进行近似:

let thrice_a_second = (millisecond * 3.0 / 1000.0).round()

只有这样您才能使用该表达式计算新位置,因为您知道它每秒增加 1 三次。