乌龟编程精讲版-71

python玩与学 | 有你好看

公益教程 | 代码俱乐部 | 玩物励志

上一节的彩虹我们调制出来“七彩过渡”的美丽彩虹。所以我手又痒痒了,接着我又编了一段代码,描绘出如下的“七彩海洋”,大家欣赏:

这个像什么呢?你说了算!我只是觉得这种颜色的波浪过渡很是好看。到底怎么做的呢?下面告诉大家。大家看到这种波浪形状就应该想到了数学中的正弦函数sin(),对了。就是用正弦函数不断变换周期大小并移相而成。

如果还没有学过正弦函数sin()或者已经忘记了。大家不用着急。这节教程是欣赏课,你大致理解过程就可以了。大家体会下turtle编程的强大。

波浪我们解决了,那颜色过渡呢?这个当然好解决了。还记得上一节告诉大家保留好的一个函数叫HSVToRGB的函数不?我们就可以用它哦!不过这节我们又给大家引入另外一个HSV的变换函数叫hueGen,和HSVToRGB函数的功能一样,都是将HSV颜色转成RGB颜色,然后给乌龟画笔让乌龟来画画。所以这个函数也要留好哦!

貌似很吓人的样子,实际可以不用理会这个函数里面到底是怎么实现转换的(也是基于一套公式进行计算)我们只要会用这个函数就可以了,怎么用呢?就要看函数的开头——参数和结尾——return返回值:

一看参数是三个:hue,val和sat——和我们上节的HSVToRGB函数是一样的:分别表示色相、亮度和饱和度,所以调用的时候只要给出这三个参数就OK了。再看结尾的return:

从代码里就能看出,最后返回的hueOut就是一组RGB的值(R,G,B),好了!下面贴出其他代码就能画出整个漂亮的颜色海洋了(要把上面的代码也粘到这里的前面哦)

这段代码大家可以体会下(不理解也没有关系):其实就是从上到下,一行一行的画sin曲线——画完一行下一行,然后每下一行的sin周期都比上一行的要大一些,然后相位也要移动,其实第25行代码就解决这个问题了。画画的过程就像下面动图展示的这样子:

好了,这次留好hueGen这个函数!下次你进行色彩创作的时候肯定能帮上大忙了!这节涉及到了数学三角函数的知识,虽然代码不难,但背后的知识有点深所以不多讲了。有兴趣的可以留言或加微信mcoblack咨询。

学编程、学创造、释放你的想象力

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181128G06BAU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券