Math 需要手表心率计算方面的帮助吗
所以我尝试为我的Android wear watchface制作一个假心跳动画。我有一个API,它可以获取BPM中的心率和当前的毫秒,现在我正试图使用一个等式来生成BPM的图像节拍。以下是psuedocode:Math 需要手表心率计算方面的帮助吗,math,wear-os,pseudocode,Math,Wear Os,Pseudocode,所以我尝试为我的Android wear watchface制作一个假心跳动画。我有一个API,它可以获取BPM中的心率和当前的毫秒,现在我正试图使用一个等式来生成BPM的图像节拍。以下是psuedocode: IF (Millis / HeartRate) % (1000 / HeartRate) <= 1) Opacity = 100; ELSE Opacity = 75; ENDIF 我真的不确定我是否计算正确。我认为图像的闪烁速度不正确。任何数学方面的帮助都将不胜
IF (Millis / HeartRate) % (1000 / HeartRate) <= 1)
Opacity = 100;
ELSE
Opacity = 75;
ENDIF
我真的不确定我是否计算正确。我认为图像的闪烁速度不正确。任何数学方面的帮助都将不胜感激 我设法使用watchapi中的不同变量编译了一个新代码。另一个变量本质上是一个介于0和359之间的数字,它每帧递增一个小数。该变量通常用于第二手的平滑运动 我还决定使用正弦波和RGB着色器,而不是不透明度。这是新代码
Green = 0
Blue = 0
Red = 100 * math.sin(HeartRate * SecondsRotationSmooth / 60)
使用这个特定的变量并不理想,但它至少为我提供了一个外观更好的代码。如果有人想给出更好的答案,请回答 BPM中的值是一个频率,而不是一段时间:
b BPM = b / 60s = b/60 * s^-1
振荡周期为
T = 1/f = 60s / b = 60/b s
如果我们有一个以毫秒为单位的时间,那么我们可以计算出模与周期的关系:
remainderInSeconds = CurrentTimeInSeconds % T
= (CurrentTimeInMilliseconds * 1e-3) % T
= (CurrentTimeInMilliseconds * 1e-3) % (60/BeatsPerMinute)
fraction = remainderInSeconds / Period
= [(CurrentTimeInMilliseconds * 1e-3) % T] / T
= (CurrentTimeInMilliseconds * 1e-3 / T) % 1
= (CurrentTimeInMilliseconds * 1e-3 / (60/BeatsPerMinute)) % 1
= (CurrentTimeInMilliseconds * 1e-3 * BeatsPerMinute / 60)) % 1
= (CurrentTimeInMilliseconds * BeatsPerMinute / 60e3)) % 1
然后你可以检查分数是否低于你的阈值;如果希望脉冲持续20秒,则检查分数是否小于1/20
或者,如果您希望脉冲持续特定的时间量,而不是周期的一部分,则只需以秒为单位计算余数