同心圆
import turtle as t
color = ['red','pink','green']
ra = [20, 50, 100]
for i in range(3):
t.pu() #turtle.penup() 别名turtle.pu(),画笔抬起,不留下痕迹
t.goto(0, -ra[i])
t.pd()
t.pencolor(color[i])
t.circle(ra[i]) #确定圆的半径
t.done()
画笔控制函数:turtle库
绝对坐标t.goto 海龟位置
更改 turtle 绘图墨水的颜色t.pencolor
turtle.pencolor()用法
Python之turtle.circle()函数理解
题目给出了基本数据的定义,后面要使用这些变量
在 for 循环里面,主要问题是画笔的定位,要考虑圆心的位置是(0,0)的时候,画笔要移动到圆心位置正下方,因此坐标点是(0,-ra[i])
画笔颜色要从颜色列表里选取
画圆的半径也从变量里面获取
正十二边形
import turtle
turtle.pensize(2)
d = 0
for i in range(1, 13):
turtle.fd(40)
d += 30 # 表示每次移动的角度是30度
turtle.seth(d)
正八边形
import turtle
turtle.pensize(2)
d = 0
for i in range(1,9):
turtle.fd(100)
d += 45
turtle.seth(d)
三角形
import turtle as t
for i in range(3):
t.seth(i*120)
t.fd(200)
同心套圆
r = 10
dr = 50
head = 90
for i in range (4):
turtle.pendown()
turtle.circle(r)
r += dr
turtle.penup()
turtle.seth(-head)
turtle.fd(dr)
turtle.seth(0)
turtle.done()
螺旋正方
import turtle
d = 0
k = 1
for j in range(10):
for i in range(4):
turtle.fd(k)
d += 91
turtle.seth(d)
k += 2
turtle.done()
1.绘制螺旋状扩展的正方形,有两个关键点:
(1)用双重循环,外循环控制螺旋的层数;内层循环控制多边形的边数;
(2)每画一条边都增加画笔的转角和边长。例如在这个程序里,每次画笔角度比前一个方向多91度,边长比前一个边长多2个像素点。
台球
import turtle
def drawCircle(): #定义画圆函数
turtle.pendown()
turtle.circle(20)
turtle.penup()
turtle.fd(40)
def drawRowCircle(n): # 定义画层次圆函数
for j in range(n,1,-1):
for i in range(j):
drawCircle()
turtle.fd(-j*40-20)
turtle.right(90)
turtle.fd(40)
turtle.left(90)
turtle.fd(40)
drawCircle()
drawRowCircle(5) #画斯洛克函数
turtle.hideturtle()
turtle.done()
螺旋六边形
import turtle
edge = 6
d = 0
k = 1
for j in range(10): #外重循环10个六边形
for i in range(edge): #内重循环6个边(边长逐渐加大,实现螺旋效果)
turtle.fd(k) #边长
d += 360/edge #角度变化值设定
turtle.seth(d) #角度变化
k += 3 #边长增加3
turtle.done()
太阳花
import turtle
turtle.color("red","yellow")
turtle.begin_fill()
#绘制太阳花形状
for i in range(50):
turtle.forward(200)
turtle.right(170)
turtle.end_fill()
turtle.done()