我正在尝试为一组RGB LED创建一些基本动画。正常的线性动画很简单,使用循环和计数器来改变灯光颜色。
我所拥有的是一个由24个LED组成的环,并且希望能够对它们应用动画,以便从上到下或从一侧到另一侧(基本上任何给定的方向)发生效果,例如简单的颜色擦拭。
除了存储每个“行”LED的数组外,我还没有任何值得分享的进展:
0 => 0
1 => 1, 23
2 => 2, 22
3 => 3, 21
and so on
这是一个粗略的解决方案,我希望有更好的方法可能使用cos / tan。
我的问题是如何从上到下(或从任何n度开始)执行动画时按顺序寻址每个LED。
答案 0 :(得分:1)
如果您想从单个数字(角度)到一对数字(圆圈上的点的坐标),则三角函数是相关的。您的LED地址似乎是0到23范围内的单个数字。它们基本上是角度(每360/24 = 15度,因此您不需要角度来协调转换。
你需要的是一种模拟旋转对称的方法,但这只是模数运算(工作模式24)。为了给出一些想法,这里有一个Python脚本,可以用来“擦除”24个点中的任何一个:
def wipe_from(i):
leds = [[i]]
for j in range(1,12):
leds.append([(i+j) % 24, (i-j) % 24])
leds.append([(i+12)%24])
return leds
例如,wipe_from(0)
对应您已有的内容,wipe_from(5)
为:
[[5], [6, 4], [7, 3], [8, 2], [9, 1], [10, 0], [11, 23], [12, 22], [13, 21], [14, 20], [15, 19], [16, 18], [17]]