Python之turtle画小狗、狮子头和小黄人
源码
1 from turtle import * 2 import turtle as t 3 t.screensize(500, 500) 4 # 【头部轮廓】 5 t.pensize(5) 6 t.home() 7 t.seth(0) 8 t.pd() 9 t.color('black') 10 t.circle(20, 80) # 0 11 t.circle(200, 30) # 1 12 t.circle(30, 60) # 2 13 t.circle(200, 29.5) # 3 14 t.color('black') 15 t.circle(20, 60) # 4 16 t.circle(-150, 22) # 5 17 t.circle(-50, 10) # 6 18 t.circle(50, 70) # 7 19 # 确定鼻头大概位置 20 x_nose = t.xcor() 21 y_nose = t.ycor() 22 t.circle(30, 62) # 8 23 t.circle(200, 15) # 9 24 # 【鼻子】 25 t.pu() 26 t.goto(x_nose, y_nose + 25) 27 t.seth(90) 28 t.pd() 29 t.begin_fill() 30 t.circle(8) 31 t.end_fill() 32 # 【眼睛】 33 t.pu() 34 t.goto(x_nose + 48, y_nose + 55) 35 t.seth(90) 36 t.pd() 37 t.begin_fill() 38 t.circle(8) 39 t.end_fill() 40 # 【耳朵】 41 t.pu() 42 t.color('#444444') 43 t.goto(x_nose + 100, y_nose + 110) 44 t.seth(182) 45 t.pd() 46 t.circle(15, 45) # 1 47 t.color('black') 48 t.circle(10, 15) # 2 49 t.circle(90, 70) # 3 50 t.circle(25, 110) # 4 51 t.rt(4) 52 t.circle(90, 70) # 5 53 t.circle(10, 15) # 6 54 t.color('#444444') 55 t.circle(15, 45) # 7 56 # 【身体】 57 t.pu() 58 t.color('black') 59 t.goto(x_nose + 90, y_nose - 30) 60 t.seth(-130) 61 t.pd() 62 t.circle(250, 28) # 1 63 t.circle(10, 140) # 2 64 t.circle(-250, 25) # 3 65 t.circle(-200, 25) # 4 66 t.circle(-50, 85) # 5 67 t.circle(8, 145) # 6 68 t.circle(90, 45) # 7 69 t.circle(550, 5) # 8 70 # 【尾巴】 71 t.seth(0) 72 t.circle(60, 85) # 1 73 t.circle(40, 65) # 2 74 t.circle(40, 60) # 3 75 t.lt(150) 76 t.circle(-40, 90) # 4 77 t.circle(-25, 100) # 5 78 t.lt(5) 79 t.fd(20) 80 t.circle(10, 60) # 6 81 # 【背部】 82 t.rt(80) 83 t.circle(200, 35) 84 # 【项圈】 85 t.pensize(20) 86 t.color('#F03C3F') 87 t.lt(10) 88 t.circle(-200, 25) # 5 89 # 【爱心铃铛】 90 t.pu() 91 t.fd(18) 92 t.lt(90) 93 t.fd(18) 94 t.pensize(6) 95 t.seth(35) 96 t.color('#FDAF17') 97 t.begin_fill() 98 t.lt(135) 99 t.fd(6) 100 t.right(180) # 画笔掉头 101 t.circle(6, -180) 102 t.backward(8) 103 t.right(90) 104 t.forward(6) 105 t.circle(-6, 180) 106 t.fd(15) 107 t.end_fill() 108 # 【前小腿】 109 t.pensize(5) 110 t.pu() 111 t.color('black') 112 t.goto(x_nose + 100, y_nose - 125) 113 t.pd() 114 t.seth(-50) 115 t.fd(25) 116 t.circle(10, 150) 117 t.fd(25) 118 # 【后小腿】 119 t.pensize(4) 120 t.pu() 121 t.goto(x_nose + 314, y_nose - 125) 122 t.pd() 123 t.seth(-95) 124 t.fd(25) 125 t.circle(-5, 150) 126 t.fd(2) 127 t.hideturtle() 128 t.done()
效果图:
源码:
1 import turtle as t 2 def hair(): # 画头发 3 t.penup() 4 t.goto(-50, 150) 5 t.pendown() 6 t.fillcolor('#a2774d') 7 t.begin_fill() 8 for j in range(10): # 重复执行10次 9 t.setheading(60 - (j * 36)) # 每次调整初始角度 10 t.circle(-50, 120) # 画120度的弧 11 t.end_fill() 12 def face(): # 画脸 13 t.penup() 14 t.goto(0, 100) 15 t.pendown() 16 t.fillcolor('#f2ae20') 17 t.begin_fill() 18 t.setheading(180) 19 t.circle(85) 20 t.end_fill() 21 # 下巴 22 t.circle(85, 120) 23 t.fillcolor('white') 24 t.begin_fill() 25 t.circle(85, 120) 26 t.setheading(135) 27 t.circle(100, 95) 28 t.end_fill() 29 def ears(dir): # 画眼睛,dir用来设置方向,左右眼对称 30 t.penup() 31 t.goto((0 - dir) * 30, 90) 32 t.setheading(90) 33 t.pendown() 34 t.fillcolor('#f2ae20') 35 t.begin_fill() 36 t.circle(dir * 30) 37 t.end_fill() 38 t.penup() 39 t.goto((0 - dir) * 40, 85) 40 t.setheading(90) 41 t.pendown() 42 t.fillcolor('white') 43 t.begin_fill() 44 t.circle(dir * 17) 45 t.end_fill() 46 def nose(): # 画鼻子 47 t.penup() 48 t.goto(20, 0) 49 t.setheading(90) 50 t.pendown() 51 t.fillcolor('#a2774d') 52 t.begin_fill() 53 t.circle(20) 54 t.end_fill() 55 def eye(dir): # 画耳朵,dir用来设置方向,左右耳对称 56 t.penup() 57 t.goto((0 - dir) * 30, 20) 58 t.setheading(0) 59 t.pendown() 60 t.fillcolor('black') 61 t.begin_fill() 62 t.circle(10) 63 t.end_fill() 64 def mouth(): # 画嘴巴 65 t.penup() 66 t.goto(0, 0) 67 t.setheading(-90) 68 t.pendown() 69 t.forward(50) 70 t.setheading(0) 71 t.circle(80, 30) 72 t.penup() 73 t.goto(0, -50) 74 t.setheading(180) 75 t.pendown() 76 t.circle(-80, 30) 77 hair() 78 ears(1) 79 ears(-1) 80 face() 81 eye(1) 82 eye(-1) 83 mouth() 84 nose() 85 t.done()
效果图:
源码:
1 import turtle as t 2 # t = turtle.Turtle() 3 wn = t.Screen() 4 t.colormode(255) 5 t.hideturtle() 6 t.speed(0) 7 t.penup() 8 t.pensize(4) 9 t.goto(100,0) 10 t.pendown() 11 t.left(90) 12 t.color((0,0,0),(255,255,0)) 13 #身体绘制上色 14 t.begin_fill() 15 t.forward(200) 16 t.circle(100,180) 17 t.forward(200) 18 t.circle(100,180) 19 t.end_fill() 20 #右眼睛绘制上色 21 t.pensize(12) 22 t.penup() 23 t.goto(-100,200) 24 t.pendown() 25 t.right(100) 26 t.circle(500,23) 27 t.pensize(3) 28 t.penup() 29 t.goto(0,200) 30 t.pendown() 31 t.seth(270) 32 t.color("black","white") 33 t.begin_fill() 34 t.circle(30) 35 t.end_fill() 36 t.penup() 37 t.goto(15,200) 38 t.pendown() 39 t.color("black","black") 40 t.begin_fill() 41 t.circle(15) 42 t.end_fill() 43 t.penup() 44 t.goto(35,205) 45 t.color("black","white") 46 t.begin_fill() 47 t.circle(5) 48 t.end_fill() 49 #左眼睛绘制上色 50 t.pensize(3) 51 t.penup() 52 t.goto(0,200) 53 t.pendown() 54 t.seth(90) 55 t.color("black","white") 56 t.begin_fill() 57 t.circle(30) 58 t.end_fill() 59 t.penup() 60 t.goto(-15,200) 61 t.pendown() 62 t.color("black","black") 63 t.begin_fill() 64 t.circle(15) 65 t.end_fill() 66 t.penup() 67 t.goto(-35,205) 68 t.color("black","white") 69 t.begin_fill() 70 t.circle(5) 71 t.end_fill() 72 #嘴绘制上色 73 t.penup() 74 t.goto(-20,100) 75 t.pendown() 76 t.seth(270) 77 t.color("black","white") 78 t.begin_fill() 79 t.circle(20,180) 80 t.left(90) 81 t.forward(40) 82 t.end_fill() 83 #裤子绘制上色 84 t.penup() 85 t.goto(-100,0) 86 t.pendown() 87 t.seth(0) 88 t.color("black","blue") 89 t.begin_fill() 90 t.forward(20) 91 t.left(90) 92 t.forward(40) 93 t.right(90) 94 t.forward(160) 95 t.right(90) 96 t.forward(40) 97 t.left(90) 98 t.forward(20) 99 t.seth(270) 100 t.penup() 101 t.goto(-100,0) 102 t.circle(100,180) 103 t.end_fill() 104 #左裤子腰带 105 t.penup() 106 t.goto(-70,20) 107 t.pendown() 108 t.color("black","blue") 109 t.begin_fill() 110 t.seth(45) 111 t.forward(15) 112 t.left(90) 113 t.forward(60) 114 t.seth(270) 115 t.forward(15) 116 t.left(40) 117 t.forward(50) 118 t.end_fill() 119 t.left(180) 120 t.goto(-70,30) 121 t.dot() 122 #右裤腰带 123 t.penup() 124 t.goto(70,20) 125 t.pendown() 126 t.color("black","blue") 127 t.begin_fill() 128 t.seth(135) 129 t.forward(15) 130 t.right(90) 131 t.forward(60) 132 t.seth(270) 133 t.forward(15) 134 t.right(40) 135 t.forward(50) 136 t.end_fill() 137 t.left(180) 138 t.goto(70,30) 139 t.dot() 140 #脚 141 t.penup() 142 t.goto(4,-100) 143 t.pendown() 144 t.seth(270) 145 t.color("black","black") 146 t.begin_fill() 147 t.forward(30) 148 t.left(90) 149 t.forward(40) 150 t.seth(20) 151 t.circle(10,180) 152 t.circle(400,2) 153 t.seth(90) 154 t.forward(20) 155 t.goto(4,-100) 156 t.end_fill() 157 t.penup() 158 t.goto(-4,-100) 159 t.pendown() 160 t.seth(270) 161 t.color("black","black") 162 t.begin_fill() 163 t.forward(30) 164 t.right(90) 165 t.forward(40) 166 t.seth(20) 167 t.circle(10,-225) 168 t.circle(400,-3) 169 t.seth(90) 170 t.forward(21) 171 t.goto(-4,-100) 172 t.end_fill() 173 #左手 174 t.penup() 175 t.goto(-100,50) 176 t.pendown() 177 t.seth(225) 178 t.color("black","yellow") 179 t.begin_fill() 180 t.forward(40) 181 t.left(90) 182 t.forward(35) 183 t.seth(90) 184 t.forward(50) 185 t.end_fill() 186 #右手 187 t.penup() 188 t.goto(100,50) 189 t.pendown() 190 t.seth(315) 191 t.color("black","yellow") 192 t.begin_fill() 193 t.forward(40) 194 t.right(90) 195 t.forward(36) 196 t.seth(90) 197 t.forward(50) 198 t.end_fill() 199 # 200 t.penup() 201 t.goto(0,-100) 202 t.pendown() 203 t.forward(30) 204 # 205 t.penup() 206 t.goto(0,-20) 207 t.pendown() 208 t.color("yellow") 209 t.begin_fill() 210 t.seth(45) 211 t.forward(20) 212 t.circle(10,180) 213 t.right(90) 214 t.circle(10,180) 215 t.forward(20) 216 t.end_fill() 217 # 218 t.penup() 219 t.color("black") 220 t.goto(-100,-20) 221 t.pendown() 222 t.circle(30,90) 223 t.penup() 224 t.goto(100,-20) 225 t.pendown() 226 t.circle(30,-90) 227 #头顶 228 t.penup() 229 t.goto(2,300) 230 t.pendown() 231 t.begin_fill() 232 t.seth(135) 233 t.circle(100,40) 234 t.end_fill() 235 t.penup() 236 t.goto(2,300) 237 t.pendown() 238 t.begin_fill() 239 t.seth(45) 240 t.circle(100,40) 241 t.exitonclick() 242 243 t.done()
效果图: