turtle库概述:
turtle(海龟)库是turtle绘图体系的python实现,1969年诞生,主要勇与程序设计入门
turtle的原理:
turtle(海龟)在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形
turtle的绘图窗体:
turtle的一个画布空间最小单位是像素
turtle.setup(width,height,startx,starty)
turtle的空间坐标体系:
turtle.goto(x,y)
turtle的基本概念:
1、turtle.penup 别名 turtle.pu()
表示抬起画笔,turtle在飞行
2、turtle.pendown 别名 turtle.pd()
表示落下画笔,turtle在爬行
3、turtle.pensize(width) 别名 turtle.width(width)
表示画笔宽度
4、turtle.pencolor(color),期中colour为颜色字符串或RGH值
表示画笔的颜色
5、turtle.forward(d) 别名 turtle.fd(d)
表示向前进(直线),其中d表示行进距离
6、turtle.circle(r,extent=None)
表示半径r绘制extent角度的弧形,其中r表示默认圆心在turtle左侧r距离位置,extent表示角度默认369°整圆
7、turtle.sethesding(angle) 别名 turtle.seth(angle)
表示改变前进的方向
turtle绘图实例:
一、玫瑰花的绘制
import turtle # 设置初始位置 turtle.penup() turtle.left(90) turtle.fd(200) turtle.pendown() turtle.right(90) # 花蕊 turtle.fillcolor("red") turtle.begin_fill() turtle.circle(10,180) turtle.circle(25,110) turtle.left(50) turtle.circle(60,45) turtle.circle(20,170) turtle.right(24) turtle.fd(30) turtle.left(10) turtle.circle(30,110) turtle.fd(20) turtle.left(40) turtle.circle(90,70) turtle.circle(30,150) turtle.right(30) turtle.fd(15) turtle.circle(80,90) turtle.left(15) turtle.fd(45) turtle.right(165) turtle.fd(20) turtle.left(155) turtle.circle(150,80) turtle.left(50) turtle.circle(150,90) turtle.end_fill() # 花瓣1 turtle.left(150) turtle.circle(-90,70) turtle.left(20) turtle.circle(75,105) turtle.setheading(60) turtle.circle(80,98) turtle.circle(-90,40) # 花瓣2 turtle.left(180) turtle.circle(90,40) turtle.circle(-80,98) turtle.setheading(-83) # 叶子1 turtle.fd(30) turtle.left(90) turtle.fd(25) turtle.left(45) turtle.fillcolor("green") turtle.begin_fill() turtle.circle(-80,90) turtle.right(90) turtle.circle(-80,90) turtle.end_fill() turtle.right(135) turtle.fd(60) turtle.left(180) turtle.fd(85) turtle.left(90) turtle.fd(80) # 叶子2 turtle.right(90) turtle.right(45) turtle.fillcolor("green") turtle.begin_fill() turtle.circle(80,90) turtle.left(90) turtle.circle(80,90) turtle.end_fill() turtle.left(135) turtle.fd(60) turtle.left(180) turtle.fd(60) turtle.right(90) turtle.circle(200,60)
二、“捂脸”表情
import turtle # 画指定的任意圆弧 def arc(sa,ea,x,y,r):#start angle,end angle,circle center,radius turtle.penup() turtle.goto(x,y) turtle.setheading(0) turtle.left(sa) turtle.fd(r) turtle.pendown() turtle.left(90) turtle.circle(r,(ea-sa)) return turtle.position() turtle.hideturtle() #画脸 turtle.speed(5) turtle.setup(900,600,200,200) turtle.pensize(5) turtle.right(90) turtle.penup() turtle.fd(100) turtle.left(90) turtle.pendown() turtle.begin_fill() turtle.pencolor("#B26A0F")#head side color turtle.circle(150) turtle.fillcolor("#F9E549")#face color turtle.end_fill() #画嘴 turtle.penup() turtle.goto(77,20) turtle.pencolor("#744702") turtle.goto(0,50) turtle.right(30) turtle.fd(110) turtle.right(90) turtle.pendown() turtle.begin_fill() turtle.fillcolor("#925902")#mouth color turtle.circle(-97,160) turtle.goto(92,-3) turtle.end_fill() turtle.penup() turtle.goto(77,-25) #画牙齿 turtle.pencolor("white") turtle.begin_fill() turtle.fillcolor("white") turtle.goto(77,-24) turtle.goto(-81,29) turtle.goto(-70,43) turtle.goto(77,-8) turtle.end_fill() turtle.penup() turtle.goto(0,-100) turtle.setheading(0) turtle.pendown() #画左边眼泪 turtle.left(90) turtle.penup() turtle.fd(150) turtle.right(60) turtle.fd(-150) turtle.pendown() turtle.left(20) turtle.pencolor("#155F84")#tear side color turtle.fd(150) turtle.right(180) position1=turtle.position() turtle.begin_fill() turtle.fillcolor("#7EB0C8")#tear color turtle.fd(150) turtle.right(20) turtle.left(270) turtle.circle(-150,18) turtle.right(52) turtle.fd(110) position2=turtle.position() turtle.goto(-33,90) turtle.end_fill() #画右边眼泪 turtle.penup() turtle.goto(0,0) turtle.setheading(0) turtle.left(90) turtle.fd(50) turtle.right(150) turtle.fd(150) turtle.left(150) turtle.fd(100) turtle.pendown() turtle.begin_fill() turtle.fd(-100) turtle.fillcolor("#7EB0C8")#tear color turtle.right(60) turtle.circle(150,15) turtle.left(45) turtle.fd(66) turtle.goto(77,20) turtle.end_fill() #画眼睛 turtle.penup() turtle.pencolor("#6C4E00")#eye color turtle.goto(-65,75) turtle.setheading(0) turtle.left(27) turtle.fd(38) turtle.pendown() turtle.begin_fill() turtle.fillcolor("#6C4E00")#eye color turtle.left(90) turtle.circle(38,86) turtle.goto(position2[0],position2[1]) turtle.goto(position1[0],position1[1]) turtle.end_fill() #画手 turtle.pencolor("#D57E18")#hand side color turtle.begin_fill() turtle.fillcolor("#EFBD3D")#hand color #第一个手指 arc(-110,10,110,-40,30) turtle.circle(300,35) turtle.circle(13,120) turtle.setheading(-50) turtle.fd(20) turtle.setheading(130) #第二个手指 turtle.circle(200,15) turtle.circle(12,180) turtle.fd(40) turtle.setheading(137) #第三个手指 turtle.circle(200,16) turtle.circle(12,160) turtle.setheading(-35) turtle.fd(45) turtle.setheading(140) #第四个手指 turtle.circle(200,13) turtle.circle(11,160) turtle.setheading(-35) turtle.fd(40) turtle.setheading(145) #第五个手指 turtle.circle(200,9) turtle.circle(10,180) turtle.setheading(-31) turtle.fd(50) #画最后手腕的部分 turtle.setheading(-45) turtle.pensize(7) turtle.right(5) turtle.circle(180,35) turtle.end_fill() turtle.begin_fill() turtle.setheading(-77) turtle.pensize(5) turtle.fd(50) turtle.left(-270) turtle.fd(7) turtle.pencolor("#EFBD3D") turtle.circle(30,180) turtle.end_fill() #测试 # res=arc(70,220,90,50,300) # print(res[0],res[1]) turtle.done()
原文:https://www.cnblogs.com/ruanmh/p/12520372.html