如果能够找到规律,可以让代码变得更简单。上述代码中其实就是调用circle()函数四次,每次传入参数不同而已。
公司主营业务:成都做网站、网站设计、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出朝阳免费做网站回馈大家。
我们可以加入循环,循环就是重复不停地做相同的事情;再找到循环变量和画圆参数之间的规律即可。
第一个圆的半径为50,每次按15的节奏递减,直到绘制完半径为5的圆。这样就可以使用range()函数,传入如下参数:range(50,0,-15)。
或者由小到大绘制,传入这样的参数也可以:range(5,51,15)。
还可以这样:循环四次,循环变量i依次为0、1、2、3,再在绘制圆的过程中构造递减的表达式:100/2-i*15。
分析这个表达式,当i等于0时,结果为50,绘制半径为50的圆;当i等于1时,结果为35,绘制半径为35的圆……正好符合题目要求的参数值。
【扩展】思考如何绘制以坐标原点为中心的同心圆呢?
仔细观察画笔绘制圆的轨迹,可发现:默认小海龟从坐标原点出发,逆时针旋转一圈画圆;然后,再回到起始点。
所以,绘制同心圆。我们需要将画笔向下移动一定的距离,即改变y的坐标,x坐标保持不变为0。参考代码如下:
循环体内,每次需要抬笔和落笔功能。
02
案例二:绘制一个正多边形
绘制正多边形有这样一个结论:用360°去除以绘制的边数,即可得到旋转角度。
比如:正三角形的旋转角度(360/3=120°)、正四边形的旋转角度(360/4=90°)、正八边形的旋转角度(360/8=45°)。其他以此类推。
那么,我们要绘制一个正八边形呢?
使用循环结构,循环八次。每次前移一定距离,再旋转(360/边数)的角度,这里旋转的就是45°角。参考代码如下:
有了这样的结论,其他的正多边形都可以信手拈来,小菜一碟了。只需要稍微改几个参数即可。
03
案例三:绘制由多种颜色组成的正螺旋线
比如,这样的图形:
这是由八种颜色组成的正八边形螺旋线结构图,颜色依次为:红(red)、绿(green)、蓝(blue)、黄(yellow)、紫(purple)、橙(orange)、黑(black)、粉(pink)等八种。
绘制思路:
首先,需要创建一个颜色列表list,含有八种颜色元素。
第二,前移一定距离,这个距离值是由小到大逐级递增的过程。
第三,旋转一定角度,可参照案例二的结论。
最后,考虑画笔的颜色,每8次(边数)为一个周期循环颜色列表。
参考代码如下:
其他的正螺旋线,也是如此规律。
【扩展】如果是有一定旋转角度的螺旋线呢?比如,这样的图形:
解题思路:只需要在正螺旋线的基础上,让旋转角度多偏移1-2°即可。修改上述案例中最后一行的代码:
简介:turtle是一个简单的绘图工具。它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令。
1.在文件头写上如下行,这能让我们在语句中插入中文
#-*- coding: utf-8 -*-
2.用import turtle导入turtle库
3.绘图窗口的原点(0,0)在正中间。默认情况下,海龟向正右方移动。
4.操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令
(1)运动命令:
forward(d)
向前移动距离d代表距离
backward(d)
向后移动距离d代表距离
right(degree)
向右转动多少度
left(degree)
向左转动多少度
goto(x,y)
将画笔移动到坐标为(x,y)的位置
stamp()
绘制当前图形
speed(speed)
画笔绘制的速度范围[0,10]整数
(2)画笔控制命令:
down()
画笔落下,移动时绘制图形
up()
画笔抬起,移动时不绘制图形
setheading(degree)
海龟朝向,degree代表角度
reset()
恢复所有设置
pensize(width)
画笔的宽度
pencolor(colorstring)
画笔的颜色
fillcolor(colorstring)
绘制图形的填充颜色
fill(Ture)
fill(False)
circle(radius, extent)
绘制一个圆形,其中radius为半径,extent为度数,例如若extent为180,则画一个半圆;如要画一个圆形,可不必写第二个参数
5.几个例子
1)画一个边长为60的三角形
#-*- coding: utf-8 -*-
importturtle
a=60
turtle.forward(a)
turtle.left(120)
turtle.forward(a)
turtle.left(120)
turtle.forward(a)
turtle.left(120)
2)画一个边长为60的正方形,并填充为红色,边框为蓝色
#-*- coding: utf-8 -*-
importturtle
turtle.reset()
a= 60
turtle.fillcolor("red")
turtle.pencolor("blue")
turtle.pensize(10)
turtle.fill(True)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.left(90)
turtle.forward(a)
turtle.fill(False)
6.练习:
1)画一个五边形
2)画一个六边形
3)任意输入一个正整数m(=3),画一个多边形(m条边)
4)画一个五角星,如下所示,注意填充为红色
5)画一个中国象棋棋盘,如下图所示,其中汉字不必显示出来:
6)绘制奥运五环图,其中五种颜色分别为蓝色、黑色、红色、黄色和绿色。注意根据实际效果调整圆形的大小和位置。
python matplotlib 怎么多边形形
y轴默认会有数值,你是需要自定义吗
可以使用yticks函数,第一个参数是y轴的位置,第二个参数是具体标签
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,6)
y = x * x
plt.plot(x, y, marker='o')
plt.yticks(y, ['a','b','c','d','e','f'])
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,6)
y = x * x
plt.plot(x, y, marker='o')
for xy in zip(x,y):
plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20,10), textcoords = 'offset points')
#例题1绘制一个四叶草
import turtle
turtle.color("green","green")
turtle.setheading(90)
turtle.begin_fill()
for i in range(4):
turtle.circle(-100,180)
turtle.left(90)
turtle.end_fill()
turtle.done()
#例题2绘制一个四角星
import turtle
turtle.color("yellow","yellow")
turtle.begin_fill()
for i in range(4):
turtle.circle(100,90)
turtle.right(180)
turtle.end_fill()
turtle.done()
#例题3绘制一个四叶花瓣
import turtle
turtle.color("pink","pink")
turtle.begin_fill()
turtle.circle(-100,90)
turtle.right(90)
turtle.circle(-100,90)
turtle.circle(100, 90)
turtle.right(90)
turtle.circle(-100, -90)
turtle.right(90)
turtle.circle(-100, 90)
turtle.right(90)
turtle.circle(-100, 90)
turtle.circle(100, 90)
turtle.right(90)
turtle.circle(-100, -90)
turtle.end_fill()
turtle.done()
#例题4输入一个数字,绘制以该数字为边数的正多边形
import turtle
a=int(turtle.textinput("绘制正多边形","请输入边数:"))
turtle.circle(100,360,a)
turtle.done()