Math 设置灯光圆的动画

Math 设置灯光圆的动画,math,Math,我正在尝试为一组RGB LED创建一些基本动画。普通的线性动画非常简单,使用循环和计数器来改变灯光颜色 我所拥有的是一个由24个LED组成的圆环,我希望能够将动画应用到它们上,这样效果(比如简单的颜色擦除)可以从上到下或从一侧到另一侧(基本上是任何给定的方向)出现 除了存储每个“行”LED阵列之外,我没有取得任何值得分享的进展: 这是一个粗糙的解决方案,我希望有更好的方法使用cos/tan 我的问题是,当从上到下(或从任意n度开始)执行动画时,如何按顺序寻址每个LED。如果要从一个数字(角度)到

我正在尝试为一组RGB LED创建一些基本动画。普通的线性动画非常简单,使用循环和计数器来改变灯光颜色

我所拥有的是一个由24个LED组成的圆环,我希望能够将动画应用到它们上,这样效果(比如简单的颜色擦除)可以从上到下或从一侧到另一侧(基本上是任何给定的方向)出现

除了存储每个“行”LED阵列之外,我没有取得任何值得分享的进展:

这是一个粗糙的解决方案,我希望有更好的方法使用cos/tan


我的问题是,当从上到下(或从任意n度开始)执行动画时,如何按顺序寻址每个LED。

如果要从一个数字(角度)到一对数字(圆上点的坐标),则三角法是相关的。您的LED地址似乎是0到23之间的单个数字。它们本质上是角度(每360/24=15度一个角度),因此不需要角度来进行坐标转换

您需要的是一种对旋转对称性建模的方法,但这只是一种简单的模块化算法(使用mod 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\u from(0)
对应于您已经拥有的,而
wipe\u 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]]

这个问题,就目前而言,是相当模糊的。只要你有一个界面来设置第i个led rgb组件,你可以做任何不同的效果。我已经在底部添加了一个总结问题。我基本上是在从上到下的圆形答案动画时尝试访问每个led约翰,谢谢你好的。我想我之所以使用角度是为了计算出x,y坐标,这样当过渡发生时,我可以在整个周期内(比如说10秒)均匀地淡出每个LED。因为每个“行”之间的间距朝着圆圈的中间增加,我需要用我想象的计时器循环来玩。再次感谢你。
[[5], [6, 4], [7, 3], [8, 2], [9, 1], [10, 0], [11, 23], [12, 22], [13, 21], [14, 20], [15, 19], [16, 18], [17]]