零基础学编程015:画些有趣的图案

从《零基础学编程014:小海龟做画》中我们学会了基本的做图命令,只需要用上循环语句,就可以画出比较复杂的图案来,比如:

from turtle import *

for i in range(255) :
    forward(50 + i)
    left(100)

这里总共循环255次,每次步子迈得大了一点点,每走一步之后左转100度,画出来的图案就是这样:

小海龟走得是不是太慢?可以按组合键CTRL + C 中断程序的运行,在for语句前加上speed(9) 可以让小海龟以最快的速度做画。不过中断之后,屏幕上已经被画乱了,需要用reset() 清空画布。完整的代码是:

from turtle import *

reset()   # 把画布清空,小海龟回到初始点
speed(9)  # 最快速度为9,最慢速度为1
for i in range(255) :
    forward(50 + i)
    left(100)

这里写了2行注释,程序员为了让别人或者是几个月之后的自己能够看懂程序,会加上一些解释说明。这是一种良好的编程习惯,黑客只要看你写过的注释,基本就能判断出你的编程水平。Python中的单行注释非常简单,在#符号之后的全是注释,只是给人类阅读的,计算机会忽略这些字符。

把旋转角度从100换成99,可以得到不同的图案:

还可以加点颜色变化,请自行试验:

from turtle import *

reset()
speed(9)

for i in range(255) :
    colormode(255)    # 颜色分量值不超过255
    pencolor(i, i, i) # 画笔颜色会越来越淡
    forward(50 + i)
    left(99)

colormode(255)表示红、绿、蓝三种配色的值不超过255。

pencolor( )设置画笔的颜色,后面三个参数为R、G、B三分量,即红、绿、蓝。

练习:试着运行下面的代码,看看出现什么图案?

import turtle from turtle import * def part( total, length, breadth, col ): angleInc = 360/total width( breadth ) color( col ) for i in range(total): forward( length ) left( angleInc ) def rosette( total, length, width, color, angleInc ): for i in range( int(360/angleInc) ): part( total, length, width, color ) left( angleInc ) turtle.setup( 300, 300, 20, 20 ) turtle.speed(9) rosette(10,40,1,"blue",36) rosette(5,80,1,"red",36) turtle.exitonclick()

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-01-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JackieZheng

初探JavaScript(二)——JS如何动态操控HTML

  除去五一三天,我已经和《JavaScript Dom编程艺术》磨合了六天,第一印象很好。慢慢的,我发现这是一块排骨,除了肉还有骨头。遇到不解的地方就会多看几...

1905
来自专栏HT

实践 HTML5 的 CSS3 Media Queries

先来介绍下 media,确切的说应该是 CSS media queries(CSS 媒体查询),媒体查询包含了一个媒体类型和至少一个使用如宽度、高度和颜色等媒体...

18710
来自专栏全沾开发(huā)

总结CSS3新特性(媒体查询篇)

总结CSS3新特性(媒体查询篇) CSS3的媒体查询是对CSS2媒体类型的扩展,完善; CSS2的媒体类型仅仅定义了一些设备的关键字,...

34710
来自专栏前端架构

重谈react优势——react技术栈回顾

现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文。

1113
来自专栏老司机的简书

CoreText实现图文混排之尺寸估算及文本选择

回头看看,距离CoreText系列首发过去一年也多了,看到第一篇文章即将超越1.3W的点击量老司机也是压力越来越大,毕竟作为瞎逼逼杰出代表的老司机偶尔也要正经一...

492
来自专栏腾讯社交用户体验设计

[ISUX译]我为css变量狂 - 腾讯ISUX

963
来自专栏AndroidTv

属性动画 ValueAnimator 运行原理全解析

好,废话不多说,之前我们已经分析过 View 动画 Animation 运行原理解析,那么这次就来学习下属性动画的运行原理。

3628
来自专栏程序员宝库

爬虫攻防之前端策略简析

文章里介绍了几个大的网站,在反爬虫过程中,采取的各式各样的策略,无不体现出前端工程师的奇葩脑洞。

1052
来自专栏hightopo

实践 HTML5 的 CSS3 Media Queries

1122
来自专栏偏前端工程师的驿站

WebComponent魔法堂:深究Custom Element 之 面向痛点编程

前言  最近加入到新项目组负责前端技术预研和选型,一直偏向于以Polymer为代表的WebComponent技术线,于是查阅各类资料想说服老大向这方面靠,最后得...

1755

扫码关注云+社区