更改
跳到导航
跳到搜索
以“== 大楼霓虹灯动画 == 你看过夜晚都市街头的霓虹灯么?它们是多么变幻莫测、色彩缤纷!然而你想没想过, 这些霓虹灯的动...”为内容创建页面
== 大楼霓虹灯动画 ==
你看过夜晚都市街头的霓虹灯么?它们是多么变幻莫测、色彩缤纷!然而你想没想过,
这些霓虹灯的动画图案都是由很多单个的灯泡不停闪烁构成的,
你不觉得奇怪么?让我们定
睛观察其中的一个灯泡,
它只会机械的闪烁变换几种不同的颜色,
没有什么稀奇的;
然而当
你观察由这些小灯泡构成的集体的时候,
霓虹灯整体的动画图案就会像变魔术一样突然表现
出来。这意味着什么?不忙回答这个问题,让我们先来玩一个类似霓虹灯的游戏。
设想你和你的朋友居住在一幢大楼里面,
大楼的一个侧面有很多的窗户,
他们整齐的排
列成一个大方阵,就像下面的图一样:
<gallery>
File:屏幕快照 2015-12-11 16.01.02.png|
</gallery>
这里黑色表示的是窗户,
灰色是窗户之间的隔断。
为什么窗户是黑色的?太难看了吧?
哦,
这是晚上,
而且屋子里都没有开灯。
没关系,
反正大楼里面住的都是自己的朋友,
你
可
以让一些人把灯打开,下面的图表示的是有些屋子亮灯的图案(好看多了)
:
<gallery>
File:屏幕快照 2015-12-11 16.01.08.png|
</gallery>
聪明的人已经想到了,
其实这就是一个简单的霓虹灯!
我们可以让不同的窗户开灯来组
成不同的图案。
比如要想用这种方法组合出一个
“十”
字图
案,
我们可以让第
7
列
的窗户都
开灯,并让第
13
行的窗户也都开灯
<gallery>
屏幕快照 2015-12-11 16.04.02.png|
</gallery>
如果是复杂点的图案呢?我们仍然可以如法炮制,
不过麻烦了点,
因为你需要告诉这幢
大楼里的每一个同学是开灯还是关灯。
如果要让霓虹灯图案动起来呢?比如每
1
秒钟
就变换一下图案,
那么你就需要给每个朋
友编制一些指令,
告诉他们在什么时刻是开灯还是关灯。
我们不妨用
0
表示关灯,
用
1
表示
开灯,
那么比如指令
01
101
1
0
0
1
指派给
了住在第三行第
4
列的
朋友,
那么他应该在第
1
秒内
关灯,
在第
二秒、
第三
秒都开
灯,
第
四
秒关
....
。
汗
,这
恐怕
太麻
烦了
,你
算算
,
如果要
展
示一个
10
分
钟的动画(
60
0
秒)那就
需要为每个窗户
后
面的朋友编制
长度
600
的指
令。
何
况
很可
能
这里有
100
扇
窗户呢!
如果你
够
聪明,
可以换一种方法来制
作
你的大楼霓虹灯动画。
让居住在大楼里面的每个
朋友
密切
观察他的
邻
居,
根据
上一秒内他
邻
居的开灯
状况决
定下一秒内该朋友的动
作
。
显
然
每个窗户
后
的朋友都会
有上、下、
左
、
右
、
左
上、
右
上、
左
下、
右
下
八
个
邻
居(
如下图)
,
那么每个人的开灯
状态
就会
被
他的
邻
居们以
及
他自己的上一时刻的开灯
状态所影响
,
并且
翻
过来这
位
朋友是
否
开灯
又
会
影响
他的
邻
居们,
整个大楼的
各
个窗户就会不停的闪烁,
这也
能
达
到动画的
效
果了。
你看过夜晚都市街头的霓虹灯么?它们是多么变幻莫测、色彩缤纷!然而你想没想过,
这些霓虹灯的动画图案都是由很多单个的灯泡不停闪烁构成的,
你不觉得奇怪么?让我们定
睛观察其中的一个灯泡,
它只会机械的闪烁变换几种不同的颜色,
没有什么稀奇的;
然而当
你观察由这些小灯泡构成的集体的时候,
霓虹灯整体的动画图案就会像变魔术一样突然表现
出来。这意味着什么?不忙回答这个问题,让我们先来玩一个类似霓虹灯的游戏。
设想你和你的朋友居住在一幢大楼里面,
大楼的一个侧面有很多的窗户,
他们整齐的排
列成一个大方阵,就像下面的图一样:
<gallery>
File:屏幕快照 2015-12-11 16.01.02.png|
</gallery>
这里黑色表示的是窗户,
灰色是窗户之间的隔断。
为什么窗户是黑色的?太难看了吧?
哦,
这是晚上,
而且屋子里都没有开灯。
没关系,
反正大楼里面住的都是自己的朋友,
你
可
以让一些人把灯打开,下面的图表示的是有些屋子亮灯的图案(好看多了)
:
<gallery>
File:屏幕快照 2015-12-11 16.01.08.png|
</gallery>
聪明的人已经想到了,
其实这就是一个简单的霓虹灯!
我们可以让不同的窗户开灯来组
成不同的图案。
比如要想用这种方法组合出一个
“十”
字图
案,
我们可以让第
7
列
的窗户都
开灯,并让第
13
行的窗户也都开灯
<gallery>
屏幕快照 2015-12-11 16.04.02.png|
</gallery>
如果是复杂点的图案呢?我们仍然可以如法炮制,
不过麻烦了点,
因为你需要告诉这幢
大楼里的每一个同学是开灯还是关灯。
如果要让霓虹灯图案动起来呢?比如每
1
秒钟
就变换一下图案,
那么你就需要给每个朋
友编制一些指令,
告诉他们在什么时刻是开灯还是关灯。
我们不妨用
0
表示关灯,
用
1
表示
开灯,
那么比如指令
01
101
1
0
0
1
指派给
了住在第三行第
4
列的
朋友,
那么他应该在第
1
秒内
关灯,
在第
二秒、
第三
秒都开
灯,
第
四
秒关
....
。
汗
,这
恐怕
太麻
烦了
,你
算算
,
如果要
展
示一个
10
分
钟的动画(
60
0
秒)那就
需要为每个窗户
后
面的朋友编制
长度
600
的指
令。
何
况
很可
能
这里有
100
扇
窗户呢!
如果你
够
聪明,
可以换一种方法来制
作
你的大楼霓虹灯动画。
让居住在大楼里面的每个
朋友
密切
观察他的
邻
居,
根据
上一秒内他
邻
居的开灯
状况决
定下一秒内该朋友的动
作
。
显
然
每个窗户
后
的朋友都会
有上、下、
左
、
右
、
左
上、
右
上、
左
下、
右
下
八
个
邻
居(
如下图)
,
那么每个人的开灯
状态
就会
被
他的
邻
居们以
及
他自己的上一时刻的开灯
状态所影响
,
并且
翻
过来这
位
朋友是
否
开灯
又
会
影响
他的
邻
居们,
整个大楼的
各
个窗户就会不停的闪烁,
这也
能
达
到动画的
效
果了。