DFrJ5KYVQaH 发表于 2020-3-3 10:08:05

【烟台】点阵屏教程(五)----变化的正方形

点阵屏教程(五)----变化的正方形 在前面的基础之上,我们可不可以让正方形也来点变化,呵呵,就是让正方形从内向外扩展或从外向内扩展,然后将整个点阵屏全部点亮,我们先来看一下两个视频:
https://v.youku.com/v_show/id_XNDU3MTAzNzk3Ng==.html
https://v.youku.com/v_show/id_XNDU3MTAzNzY2OA==.html
由上面两个视频我们可以发现这两个分别是由内向外和由外向内展开的正方形。那么我们先来看一下
由内向外
我们跟前面一样,先通过电子表格来分析下,我们要由内向外扩展都经历了哪图标,坐标都是什么,我们来看一下图
http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ry*ggDssKp1dc07Af.5OgZAmCRiajfyv7H2HFJP3JFQXcZKCMr27*YJp3ICHO1tJ*1Q!!/b&ek=1&kp=1&pt=0&bo=DQKcAQ0CnAEDEDU!&tl=1&su=016528799&tm=1583200800&sce=0-12-12&rf=2-9

我们分析一下,先看一下行的变化 ,从上图中首先我们由内向外看,上半部分:最中间的位置坐标是(3,3),(4,3)向上依次展开,我们可以把横坐标写出来,那上半部分我们第一列是0,第二列是1,第三列是2,第三列是3,如果我们设一个变量I,它的取值为3到0,那么列坐标就可以以i来表示(我们现在只看上半部分),而行坐标第一行的横坐标就是从0到7,第二行是从1到6,第三行是从2到5,第四行是从3到4,我们可以用j来表示,那么它可以表示为i~7-i;同样我们分析下半部分的列坐标我怎么可以用i表示它分别是当i为3时,这是纵坐标是4;当i是2时,纵坐标为5;当i为1,纵坐标为6;当i 是0,纵坐标是7,因此纵坐标我们用i来表示,可以表示成7-i。但对于横坐标你会发现它们的变化规律与上半部分没有不同,因此我们对于这部分我们可以写代码如下:
http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ryy9xfTb1S00rgbyvl.a3gra*wgu.OsVOO1Bb8K9TErywenLNXxZdkge.YZ76y5pVww!!/b&ek=1&kp=1&pt=0&bo=BwJDAQcCQwEDEDU!&tl=1&su=01424655&tm=1583200800&sce=0-12-12&rf=2-9
同样,我们再来看一下列的变化,我们还是先来通过电子表格的图来分析:
http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ry6wRDlm8lKUvAkxjQy5eTu2MsnIiZMNRc4XxQBatFApqqn2cGvo6UwjUM*yd0CaCCA!!/b&ek=1&kp=1&pt=0&bo=LwKdAS8CnQEDEDU!&tl=1&su=062410895&tm=1583200800&sce=0-12-12&rf=2-9
仔细一下,我们会发现其实它是与刚才横向从标是关于对角线对称的,也就是纵、横坐标交换一下位置就可以了,所以我们要点亮列上的小灯把代码进行如下编写:
http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ry17QOK6BUXPdV*0kkwjxnCy2on8.Nm.q5RKjiPGFQCxWuip2lRC31dNmsjwD9NmTYA!!/b&ek=1&kp=1&pt=0&bo=EwLHARMCxwEDEDU!&tl=1&su=058925791&tm=1583200800&sce=0-12-12&rf=2-9这

这样,我们就可以看一个正方形由内向外展开。
由外向内
我们仍先来通过电子表格分析,我们需的数据和坐标:
http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5rywFND.5LHscdWDwV.uFeh0htZ4ZSOXewA5OmghTs0lWrxcw6umA4IJvNvCsmVM*e*w!!/b&ek=1&kp=1&pt=0&bo=GwKdARsCnQEDEDU!&tl=1&su=065885151&tm=1583200800&sce=0-12-12&rf=2-9
仔细观察,我们会发现它与由向外变化图的区别就是变化方向由原来的由中间向两边变为由两向中间变化了,其实也就是i的取值由3到0变为了由0到3变化,其它的都没有变化,因此我们的代码只将i取值改变一下,就可以了。
http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ry97DzE1ZLUkWqYe0SeddJrkm3UsBT06Krf4qf00mOIWGTqI6eUH0ZMwovyU1yZX3qQ!!/b&ek=1&kp=1&pt=0&bo=GQLGARkCxgEDEDU!&tl=1&su=072990783&tm=1583200800&sce=0-12-12&rf=2-9
运行,效果就可以实现了。
由内向外点亮全屏
结合,我们刚才的由内向外的正方形,我们仍先来看电子表格图

http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ry8D5PvMuEo8iSyZuflgmFdFHPMUnDHCZHSXZVJzWIWZbxye4d0oi.gzVe8VBh6Ckig!!/b&ek=1&kp=1&pt=0&bo=DgKYAQ4CmAEDEDU!&tl=1&su=0216189919&tm=1583200800&sce=0-12-12&rf=2-9
我们发现它的横坐标与由内向外变化地正方形一样没有变化,变化的只有纵坐标由原来的一个数变成了一个范围了,因此我们可以设一变量k来表示,取值范围也与横坐标一样是i到7-i。有了纵横坐标,我们的代码就可以写成:

http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ry5ScSTrsCwjF*dvA4EQqka7voWbGffF2dS0gPYBVT3oA2qGmEHLkSy334bQ6BV6xNw!!/b&ek=1&kp=1&pt=0&bo=7gEvAe4BLwEDEDU!&tl=1&su=0195597791&tm=1583200800&sce=0-12-12&rf=2-9
运行效果:

https://v.youku.com/v_show/id_XNDU3MTAzNzk3Ng==.html

想一想,你能不能写出一个由外向内点亮全屏的程序呢?
由外向内熄灭全屏

分析电子表格图:
http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ry2jT*9Z6hDYkyko0.3YtFGzLMw0IJ5M3nUnAqOg8QBDcEogRKBxnlRnZRyNW2lT*tw!!/b&ek=1&kp=1&pt=0&bo=BAKWAQQClgEDEDU!&tl=1&su=0103243999&tm=1583200800&sce=0-12-12&rf=2-9
分析后,我们可以写如下代码

http://a1.qpic.cn/psc?/V13slqLh0xNjOv/jKwCg1C7YRUNu7w0Ty5ry9dodhOKI9UXpbyt393RCEKOzghk8KSgpMc1YgnIx6D96ueqbnM3GBgcafKDAeY35w!!/b&ek=1&kp=1&pt=0&bo=3gE1Ad4BNQEDEDU!&tl=1&su=0166566191&tm=1583200800&sce=0-12-12&rf=2-9
运行效果:


https://v.youku.com/v_show/id_XNDU3MTAzODE0MA==.html
我们可以发挥想像做出更多更好的效果

rzegkly 发表于 2020-3-3 13:29:09

很棒

DFrJ5KYVQaH 发表于 2020-3-4 07:54:10

一起学习,共同进步
页: [1]
查看完整版本: 【烟台】点阵屏教程(五)----变化的正方形