You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

长度与矩阵高度不匹配的LED灯条映射矩阵的Python建模问题

蛇形弯折LED矩阵Python映射方案

实现逻辑

不用手动逐点做映射,只需要提前定义好你的灯带铺设规则(起始坐标、行进方向、单条灯带最大灯珠数),运行逻辑自动生成坐标到灯带ID+灯珠索引的映射表即可。

操作步骤

  • 第一步:定义基础参数
# 矩阵参数:36行48列
MATRIX_HEIGHT = 36
MATRIX_WIDTH = 48
# 单根LED灯带最大灯珠数
MAX_LED_PER_STRIP = 64
# 初始化映射表:matrix_map[行号y][列号x] = (灯带ID, 灯珠索引)
matrix_map = [[None for _ in range(MATRIX_WIDTH)] for _ in range(MATRIX_HEIGHT)]
# 方向定义:(y轴偏移量, x轴偏移量),可根据实际布线调整
DOWN = (1, 0)
UP = (-1, 0)
RIGHT = (0, 1)
LEFT = (0, -1)
  • 第二步:自动生成映射表
    根据你的蛇形弯折规则设置方向循环,逻辑自动遍历整个矩阵填充映射表:
current_strip_id = 1
current_led_idx = 0
current_y, current_x = 0, 0
# 蛇形行进方向循环,根据你实际的弯折顺序调整
direction_cycle = [DOWN, RIGHT, UP, RIGHT]
dir_pointer = 0

# 遍历填充整个矩阵
while current_y < MATRIX_HEIGHT and current_x < MATRIX_WIDTH:
    # 给当前坐标写入映射关系
    if matrix_map[current_y][current_x] is None:
        matrix_map[current_y][current_x] = (current_strip_id, current_led_idx)
        current_led_idx += 1
    # 单根灯带灯珠用完,切换下一根
    if current_led_idx >= MAX_LED_PER_STRIP:
        current_strip_id += 1
        current_led_idx = 0
    # 计算下一个坐标,碰边界自动切换方向
    dy, dx = direction_cycle[dir_pointer]
    next_y = current_y + dy
    next_x = current_x + dx
    # 下一个坐标越界或已填充,切换方向
    if next_y < 0 or next_y >= MATRIX_HEIGHT or next_x < 0 or next_x >= MATRIX_WIDTH or matrix_map[next_y][next_x] is not None:
        dir_pointer = (dir_pointer + 1) % len(direction_cycle)
        dy, dx = direction_cycle[dir_pointer]
        next_y = current_y + dy
        next_x = current_x + dx
    current_y, current_x = next_y, next_x
  • 第三步:调用映射表控制LED
    需要给指定坐标的灯设置颜色时,直接查映射表拿到对应灯带和灯珠位置即可:
# 示例:给第2行第3列(y=1, x=2,索引从0开始)的灯设置颜色
target_y = 1
target_x = 2
strip_id, led_idx = matrix_map[target_y][target_x]
# 调用你实际使用的灯带控制接口即可,比如:
# strip_list[strip_id].setPixel(led_idx, 255, 0, 0)

如果你的弯折规则不是固定循环,也可以提前把每根灯带的分段路径写死为参数,同样可以自动生成映射表,比手动逐点录入效率高很多

内容的提问来源于stack exchange,提问作者Asik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:21:00