循环调色可以通过改变颜色编号来表现流动或闪烁,而不移动图形本身。如果透明编号也参与轮换,原本空白的地方就可能出现颜色,破坏轮廓。
下面是一组独立的虚构游戏输入与逐步结果。先记录单位、编号和端点是否包含,再尝试自己推算,最后对照第一处差异。所有结论都以本例规则为前提;其他作品采用不同约定时,应按它自己的说明重新计算。
图像只记录整数色号,零号固定透明,其余一到颜色数参与循环。偏移可为负,非零色号按循环次序移动,零号始终保持。本文记录的是逻辑色号,不计算具体颜色、亮度或视觉效果。
非透明色号1到9 [8, 1, 2, 1, 7, 5] [5, 9, 8, 6, 8, 6] [8, 1, 3, 1, 6, 6] [8, 2, 8, 3, 2, 5] 偏移[0, 9, -9, 7, -16, 16, -17, 8]
偏移0等价于向前0格,轮换后的四行依次为[[8, 1, 2, 1, 7, 5], [5, 9, 8, 6, 8, 6], [8, 1, 3, 1, 6, 6], [8, 2, 8, 3, 2, 5]];透明零号位置保持不变。
偏移9等价于向前0格,轮换后的四行依次为[[8, 1, 2, 1, 7, 5], [5, 9, 8, 6, 8, 6], [8, 1, 3, 1, 6, 6], [8, 2, 8, 3, 2, 5]];透明零号位置保持不变。
偏移-9等价于向前0格,轮换后的四行依次为[[8, 1, 2, 1, 7, 5], [5, 9, 8, 6, 8, 6], [8, 1, 3, 1, 6, 6], [8, 2, 8, 3, 2, 5]];透明零号位置保持不变。
偏移7等价于向前7格,轮换后的四行依次为[[6, 8, 9, 8, 5, 3], [3, 7, 6, 4, 6, 4], [6, 8, 1, 8, 4, 4], [6, 9, 6, 1, 9, 3]];透明零号位置保持不变。
偏移-16等价于向前2格,轮换后的四行依次为[[1, 3, 4, 3, 9, 7], [7, 2, 1, 8, 1, 8], [1, 3, 5, 3, 8, 8], [1, 4, 1, 5, 4, 7]];透明零号位置保持不变。
偏移16等价于向前7格,轮换后的四行依次为[[6, 8, 9, 8, 5, 3], [3, 7, 6, 4, 6, 4], [6, 8, 1, 8, 4, 4], [6, 9, 6, 1, 9, 3]];透明零号位置保持不变。
偏移-17等价于向前1格,轮换后的四行依次为[[9, 2, 3, 2, 8, 6], [6, 1, 9, 7, 9, 7], [9, 2, 4, 2, 7, 7], [9, 3, 9, 4, 3, 6]];透明零号位置保持不变。
偏移8等价于向前8格,轮换后的四行依次为[[7, 9, 1, 9, 6, 4], [4, 8, 7, 5, 7, 5], [7, 9, 2, 9, 5, 5], [7, 1, 7, 2, 1, 4]];透明零号位置保持不变。
每种结果都保留0个透明格,完整周期偏移还原原编号。
把非透明调色板排成一个环,按偏移逐格旋转后逐项查表,与取余计算比较。偏移一个完整周期应还原,先偏移再逆偏移也应得到原图,透明位置保持。
调色板轮换不保证每种配色都便于辨认,实际设计仍需考虑对比度和状态提示。透明编号是本例的特殊约定;如果文件格式采用独立透明通道,应先明确哪部分数据参与轮换,而不是直接套用这里的编号。
测试时先保留输入和中间状态,再只改变一个条件。空状态、正好相等、重复出现和最后一步都值得单独检查。若最终结果不符,应从第一处偏差查起,而不是在末尾随意增加补偿让数字表面一致。