基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达
源码:
1 #路飞骷髅 2 import turtle as t 3 #黄底帽子 4 t.pu() 5 t.goto(0,200) 6 t.circle(-130,-80) 7 t.pd() 8 t.colormode(255) 9 t.pensize(5) 10 t.color(242,232,184) #帽子黄底RGB 11 t.begin_fill() 12 t.pencolor(0,0,0) 13 t.circle(-130,160) 14 t.seth(180) 15 t.fd(255) 16 t.end_fill() 17 18 #红色线条 19 t.begin_fill() 20 t.color(221,65,43) #帽子红色带 21 t.pencolor(0,0,0) 22 t.seth(80) 23 t.circle(-130,19) 24 t.seth(0) 25 t.fd(225) 26 t.seth(-59) 27 t.circle(-130,19) 28 t.seth(180) 29 t.fd(255) 30 t.end_fill() 31 32 #帽檐 33 t.begin_fill() 34 t.color(242,232,184) 35 t.pencolor(0,0,0) 36 t.fd(60) 37 t.circle(12,180) 38 t.fd(375) 39 t.circle(12,180) 40 t.fd(255 + 60) 41 t.end_fill() 42 43 #脸部下半轮廓 44 t.pu() 45 t.setpos(0,-30) 46 t.seth(-180) 47 t.circle(-130,-75) 48 t.pd() 49 t.circle(-130,150) 50 51 #眼睛鼻子 52 t.pu() 53 t.color(33,24,24) #眼睛、鼻子RGB 54 t.setpos(-45,64) 55 t.seth(-180) 56 t.pd() 57 t.begin_fill() 58 t.circle(33) 59 t.pu() 60 t.setpos(45,64) 61 t.pd() 62 t.circle(33) 63 t.end_fill() 64 65 t.pu() 66 t.setpos(0,5) 67 t.pd() 68 t.begin_fill() 69 t.circle(8) 70 t.end_fill() 71 72 #下巴 73 t.pencolor(0,0,0) 74 t.pu() 75 t.setpos(0,0) 76 t.seth(0) 77 t.circle(-75,45) 78 t.pd() 79 t.circle(-75,270) 80 81 #牙齿 82 t.pu() 83 t.setpos(0,120) 84 t.seth(0) 85 t.circle(-105,136) 86 t.pd() 87 t.circle(-105,86) 88 89 t.pu() 90 t.seth(0) 91 t.goto(0,200) 92 t.circle(-130,150) 93 t.pd() 94 t.circle(-130,60) 95 96 t.pu() #牙齿三根竖线 97 t.setpos(-30,-27) 98 t.seth(260) 99 t.pd() 100 t.fd(52) 101 t.pu() 102 t.setpos(30,-27) 103 t.pd() 104 t.seth(-260) 105 t.fd(-52) 106 t.pu() 107 t.setpos(0,-30) 108 t.seth(-90) 109 t.pd() 110 t.fd(56) 111 112 #上排右侧小爪爪 113 #释放注释为:上排右侧小爪爪实心金方案 114 t.pu() 115 #t.color(255,215,0) #金色的RGB 116 t.pencolor(0,0,0) 117 t.setpos(110,145) 118 t.seth(45) 119 t.pd() 120 #t.begin_fill() 121 t.fd(40) 122 t.seth(135) 123 t.circle(-30,235) 124 t.seth(-20) 125 t.circle(-30,220) 126 t.seth(-135) 127 t.fd(40) 128 #t.end_fill() 129 130 #上排左侧小爪爪 131 t.pu() 132 t.pencolor(0,0,0) 133 t.setpos(-110,145) 134 t.seth(135) 135 t.pd() 136 t.fd(40) 137 t.seth(45) 138 t.circle(30,235) 139 t.seth(-160) 140 t.circle(30,220) 141 t.seth(-45) 142 t.fd(40) 143 144 #下排右侧小爪爪 145 t.pu() 146 t.setpos(70,-10) 147 t.seth(-45) 148 t.pd() 149 t.fd(70) 150 t.seth(45) 151 t.circle(-30,235) 152 t.seth(-70) 153 t.circle(-30,255) 154 t.seth(135) 155 t.fd(22) 156 157 #下排左侧小爪爪 158 t.pu() 159 t.setpos(-70,-10) 160 t.seth(-135) 161 t.pd() 162 t.fd(70) 163 t.seth(135) 164 t.circle(30,235) 165 t.seth(-110) 166 t.circle(30,255) 167 t.seth(45) 168 t.fd(22) 169 t.done()
效果图:
源码:
1 # -*- coding:utf-8 -*- 2 import turtle 3 import math 4 5 def shield(): 6 ''' 7 该函数的作用是画一个美国队长的盾牌 8 ''' 9 # 设置画布背景 10 turtle.bgcolor('#FFFFFF') 11 # 设置画笔速度 12 turtle.speed(10) 13 # 依次填充同心圆 14 fill_circle('#FF0000', 230) 15 fill_circle('#FFFFFF', 178) 16 fill_circle('#FF0000', 129) 17 fill_circle('#0000FF', 75) 18 # 完成五角星 19 draw_five('#FFFFFF', 75) 20 # 以下代码,将画好的图案按指定格式保存到当前文件目录 21 # windows 可以使用.jpg格式,或.ps,MAC使用eps格式,或.ps 22 ts = turtle.getscreen() 23 ts.getcanvas().postscript(file="shield.eps") 24 25 # 启动事件循环,必须是乌龟图形程序中的最后一个语句 26 # 如果没有这个语句,代码运行完成后,窗口直接消失。 27 turtle.done() 28 29 30 def draw_circle(radium): 31 ''' 32 该函数的作用是画一个圆线 33 :param radium:半径 34 ''' 35 # 画笔定位到圆点 36 turtle.home() 37 # 提笔 38 turtle.penup() 39 # 向前移动指定的半径 40 turtle.forward(radium) 41 # 落笔 42 turtle.pendown() 43 # 偏转角度 44 turtle.setheading(90) 45 # 画一个指定半径的圆 46 turtle.circle(radium) 47 # 提笔 48 turtle.penup() 49 50 51 def fill_circle(color, r1): 52 ''' 53 该函数的作用是,画一个圆环,有指定的填充色和半径 54 :param color:颜色 55 :param r1:半径 56 ''' 57 # 设置画笔颜色 58 turtle.pencolor(color) 59 # 设置填充颜色 60 turtle.fillcolor(color) 61 # 开始填充 62 turtle.begin_fill() 63 # 画圆线 64 draw_circle(r1) 65 # 结束填充 66 turtle.end_fill() 67 68 # 画并填充五角星 69 def draw_five(color, radium): 70 ''' 71 该函数的作用是画一个五角星 72 :param color:颜色 73 :para radium: 74 ''' 75 # 画笔定位到圆点 76 turtle.home() 77 # 提笔 78 turtle.penup() 79 # 偏转90度 80 turtle.setheading(90) 81 # 向前移动90个像素 82 turtle.forward(radium) 83 # 偏转288度 84 turtle.setheading(288) 85 # 落笔 86 turtle.pendown() 87 # radians()将角度转换为弧度 88 long_side = (math.sin(math.radians(36))*radium)/math.sin(math.radians(126)) 89 # 设置画笔颜色 90 turtle.pencolor(color) 91 # 设置填充颜色 92 turtle.fillcolor(color) 93 # 开始填充 94 turtle.begin_fill() 95 for i in range(10): 96 turtle.forward(long_side) 97 if i % 2 == 0: 98 turtle.left(72) 99 else: 100 turtle.right(144) 101 # 结束填充 102 turtle.end_fill() 103 # 提笔 104 turtle.penup() 105 106 # 运行主函数 107 shield()
效果图:
源码:
1 import turtle 2 t=turtle.Turtle() 3 turtle.Turtle().screen.delay(0) 4 tleft=turtle.Turtle() 5 #第一部分 6 t.penup() 7 t.goto(0,0) 8 t.pendown() 9 t.left(20) 10 t.forward(110) 11 t.left(25) 12 t.forward(40) 13 t.left(100) 14 t.circle(180,20) 15 t.right(120) 16 t.forward(250) 17 t.left(165) 18 t.forward(250) 19 t.right(100) 20 t.forward(35) 21 t.left(70) 22 t.forward(45) 23 t.left(70) 24 t.forward(120) 25 t.left(70) 26 t.forward(80) 27 t.left(80) 28 t.forward(80) 29 t.left(68) 30 t.forward(120) 31 t.left(180) 32 t.forward(78) 33 t.right(68) 34 t.forward(60) 35 t.right(75) 36 t.forward(60) 37 t.right(110) 38 t.forward(15) 39 t.left(38) 40 t.forward(65) 41 t.right(73)#五边形的直边 42 t.forward(35) 43 t.right(70) 44 t.forward(65) 45 t.right(68) 46 t.forward(50) 47 t.right(80) 48 t.forward(50) 49 t.penup() 50 t.goto(-65,68) 51 t.pendown() 52 t.right(7) 53 t.forward(350) 54 t.right(165) 55 t.forward(330) 56 t.penup() 57 t.goto(64,65) 58 t.pendown() 59 t.left(75) 60 t.forward(350) 61 t.left(165) 62 t.forward(330) 63 t.penup() 64 t.goto(300,500) 65 #第二部分 66 tleft.left(180) 67 tleft.right(20) 68 tleft.forward(110) 69 tleft.right(25) 70 tleft.forward(40) 71 tleft.right(100) 72 tleft.circle(-180,20) 73 tleft.left(120) 74 tleft.forward(250) 75 tleft.right(165) 76 tleft.forward(250) 77 tleft.left(100) 78 tleft.forward(35) 79 tleft.penup() 80 tleft.goto(0,0) 81 tleft.pendown() 82 tleft.left(20) 83 tleft.penup() 84 tleft.forward(18) 85 tleft.pendown() 86 tleft.forward(50)#额头竖线 87 tleft.penup() 88 tleft.forward(110)#消除竖线 89 tleft.pendown() 90 tleft.left(90) 91 tleft.forward(30) 92 tleft.right(90) 93 tleft.forward(60) 94 tleft.right(90) 95 tleft.forward(60) 96 tleft.right(90) 97 tleft.forward(60) 98 tleft.right(90) 99 tleft.forward(40) 100 tleft.penup() 101 tleft.forward(30) 102 tleft.pendown() 103 tleft.left(90) 104 tleft.forward(30) 105 tleft.right(180) 106 tleft.forward(100) 107 tleft.right(90) 108 tleft.forward(80) 109 tleft.right(90) 110 tleft.forward(100) 111 tleft.penup() 112 tleft.goto(150,70) 113 tleft.pendown() 114 tleft.left(100) 115 tleft.forward(40) 116 tleft.right(80) 117 tleft.circle(-333,40) 118 tleft.right(160) 119 tleft.forward(230) 120 #右半部分 121 tleft.left(100) 122 tleft.forward(40) 123 tleft.left(80) 124 tleft.forward(20) 125 tleft.left(100) 126 tleft.forward(30) 127 tleft.right(100) 128 tleft.forward(20) 129 tleft.right(80) 130 tleft.forward(30) 131 tleft.left(80) 132 tleft.forward(20) 133 tleft.left(100) 134 tleft.forward(30) 135 tleft.right(100) 136 tleft.forward(20) 137 tleft.right(80) 138 tleft.forward(30) 139 tleft.left(80) 140 tleft.forward(20) 141 tleft.left(100) 142 tleft.forward(30) 143 tleft.right(100) 144 tleft.forward(20) 145 tleft.right(80) 146 tleft.forward(30) 147 tleft.left(80) 148 tleft.forward(20) 149 tleft.left(100) 150 tleft.forward(30) 151 tleft.right(100) 152 tleft.forward(20) 153 tleft.right(80) 154 tleft.forward(30) 155 tleft.left(80) 156 tleft.forward(20) 157 tleft.left(100) 158 tleft.forward(30) 159 tleft.right(100) 160 tleft.forward(20) 161 tleft.right(80) 162 tleft.forward(30) 163 tleft.left(80) 164 tleft.forward(20) 165 tleft.left(100) 166 tleft.forward(30) 167 tleft.right(100) 168 tleft.forward(20) 169 tleft.right(80) 170 tleft.forward(30) 171 #右下部分 172 tleft.left(70) 173 tleft.forward(30) 174 tleft.right(110) 175 tleft.forward(40) 176 tleft.right(60) 177 tleft.forward(100) 178 tleft.right(30) 179 tleft.circle(200,20) 180 tleft.left(10) 181 tleft.forward(80) 182 #右下部分goto 183 tleft.penup() 184 tleft.goto(145,-198) 185 tleft.pendown() 186 tleft.left(90) 187 tleft.forward(30) 188 tleft.right(30) 189 tleft.forward(40) 190 tleft.right(150) 191 tleft.forward(30) 192 tleft.backward(30) 193 tleft.left(90) 194 tleft.forward(100) 195 tleft.right(90) 196 tleft.forward(30) 197 tleft.backward(30) 198 tleft.left(90) 199 tleft.right(30) 200 tleft.circle(200,20) 201 tleft.left(10) 202 tleft.forward(50) 203 #第三部分脸 204 t2=turtle.Turtle() 205 t2.penup() 206 t2.goto(0,-80) 207 #尖角 208 t2.circle(150,extent=90) 209 t2.pendown() 210 t2.circle(150,extent=30) 211 t2.penup() 212 t2.circle(150,extent=18) 213 t2.pendown() 214 t2.circle(150,extent=27) 215 t2.penup() 216 t2.circle(150,extent=30) 217 t2.pendown() 218 t2.circle(150,extent=27) 219 t2.penup() 220 t2.circle(150,extent=18) 221 t2.pendown() 222 t2.circle(150,extent=30) 223 t2.right(100) 224 t2.forward(40) 225 #左脸夹 226 t2.left(80) 227 t2.circle(333,40) 228 t2.left(160) 229 t2.forward(230) 230 #左半部分 231 t2.right(100) 232 t2.forward(40) 233 t2.right(80) 234 t2.forward(20) 235 t2.right(100) 236 t2.forward(30) 237 t2.left(100) 238 t2.forward(20) 239 t2.left(80) 240 t2.forward(30) 241 t2.right(80) 242 t2.forward(20) 243 t2.right(100) 244 t2.forward(30) 245 t2.left(100) 246 t2.forward(20) 247 t2.left(80) 248 t2.forward(30) 249 t2.right(80) 250 t2.forward(20) 251 t2.right(100) 252 t2.forward(30) 253 t2.left(100) 254 t2.forward(20) 255 t2.left(80) 256 t2.forward(30) 257 t2.right(80) 258 t2.forward(20) 259 t2.right(100) 260 t2.forward(30) 261 t2.left(100) 262 t2.forward(20) 263 t2.left(80) 264 t2.forward(30) 265 t2.right(80) 266 t2.forward(20) 267 t2.right(100) 268 t2.forward(30) 269 t2.left(100) 270 t2.forward(20) 271 t2.left(80) 272 t2.forward(30) 273 t2.right(80) 274 t2.forward(20) 275 t2.right(100) 276 t2.forward(30) 277 t2.left(100) 278 t2.forward(20) 279 t2.left(80) 280 t2.forward(30) 281 t2.right(70) 282 t2.forward(30) 283 t2.left(110) 284 t2.forward(40) 285 t2.left(60) 286 t2.forward(100) 287 t2.left(30) 288 t2.circle(-200,20) 289 t2.right(10) 290 t2.forward(80) 291 t2.penup() 292 t2.goto(-145,-198)#左脸颊 293 t2.pendown() 294 t2.right(90) 295 t2.forward(30) 296 t2.left(30) 297 t2.forward(40) 298 t2.left(150) 299 t2.forward(30) 300 t2.right(180) 301 t2.forward(30) 302 t2.left(90) 303 t2.forward(100) 304 t2.left(90) 305 t2.forward(30) 306 t2.left(180) 307 t2.forward(30) 308 t2.left(120) 309 t2.circle(-200,20) 310 t2.right(10) 311 t2.forward(50) 312 #左眼 313 t2.right(135) 314 t2.forward(70) 315 t2.left(50) 316 t2.forward(40) 317 t2.left(20) 318 t2.forward(20) 319 t2.penup() 320 t2.goto(-100,28) 321 t2.pendown() 322 t2.right(70) 323 t2.forward(65) 324 t2.left(50) 325 t2.forward(40) 326 t2.left(40) 327 t2.forward(20) 328 #左眼带 329 t2.penup() 330 t2.goto(-105,-10) 331 t2.pendown() 332 t2.right(100) 333 t2.circle(120,extent=20) 334 t2.circle(60,extent=80) 335 t2.penup() 336 t2.goto(-105,-13) 337 t2.pendown() 338 t2.right(100) 339 t2.circle(120,extent=20) 340 t2.circle(60,extent=80) 341 t2.penup() 342 t2.goto(-70,-40) 343 t2.pendown() 344 t2.left(10) 345 t2.forward(30) 346 t2.penup() 347 t2.goto(-10,-40) 348 t2.pendown() 349 t2.left(35) 350 t2.forward(30) 351 t2.penup() 352 t2.goto(-80,30) 353 t2.pendown() 354 t2.right(130) 355 t2.forward(47) 356 t2.left(50) 357 t2.forward(35) 358 t2.penup() 359 t2.goto(-60,-45) 360 t2.pendown() 361 t2.right(98) 362 t2.forward(60) 363 t2.left(20) 364 t2.forward(80) 365 t2.left(70) 366 t2.forward(10) 367 t2.left(90) 368 t2.forward(50) 369 t2.right(60) 370 t2.forward(30) 371 t2.right(60) 372 t2.forward(30) 373 t2.right(60) 374 t2.forward(50) 375 t2.left(90) 376 t2.forward(10) 377 t2.left(75) 378 t2.forward(80) 379 t2.left(15) 380 t2.forward(60) 381 t2.penup() 382 t2.goto(-80,-140) 383 t2.pendown() 384 t2.right(150) 385 t2.circle(85,extent=45) 386 t2.left(15) 387 t2.forward(70) 388 t2.left(15) 389 t2.circle(55,extent=55) 390 t2.penup() 391 t2.goto(0,-175) 392 t2.pendown() 393 t2.left(18) 394 t2.forward(170) 395 #右眼 396 tleft.left(135) 397 tleft.forward(70) 398 tleft.right(50) 399 tleft.forward(40) 400 tleft.right(20) 401 tleft.forward(20) 402 tleft.penup() 403 tleft.goto(100,28) 404 tleft.pendown() 405 tleft.left(70) 406 tleft.forward(65) 407 tleft.right(50) 408 tleft.forward(40) 409 tleft.right(40) 410 tleft.forward(20) 411 #右眼带 412 tleft.penup() 413 tleft.goto(105,-10) 414 tleft.pendown() 415 tleft.left(100) 416 tleft.circle(-120,extent=20) 417 tleft.circle(-60,extent=80) 418 tleft.penup() 419 tleft.goto(105,-13) 420 tleft.pendown() 421 tleft.left(100) 422 tleft.circle(-120,extent=20) 423 tleft.circle(-60,extent=80) 424 #右眼睛 425 tleft.penup() 426 tleft.goto(70,-40) 427 tleft.pendown() 428 tleft.right(10) 429 tleft.forward(30) 430 tleft.penup() 431 tleft.goto(10,-40) 432 tleft.pendown() 433 tleft.right(35) 434 tleft.forward(30) 435 tleft.penup() 436 tleft.goto(80,30) 437 tleft.pendown() 438 tleft.left(130) 439 tleft.forward(47) 440 tleft.right(50) 441 tleft.forward(35) 442 #鼻子 443 tleft.penup() 444 tleft.goto(0,-70) 445 tleft.pendown() 446 tleft.left(30) 447 tleft.forward(20) 448 tleft.left(72) 449 tleft.forward(10) 450 tleft.left(108) 451 tleft.forward(20) 452 tleft.right(42) 453 tleft.forward(20) 454 tleft.left(108) 455 tleft.forward(10) 456 tleft.left(72) 457 tleft.forward(20) 458 tleft.penup() 459 tleft.goto(0,-90) 460 tleft.pendown() 461 tleft.left(42) 462 tleft.forward(20) 463 tleft.left(72) 464 tleft.forward(10) 465 tleft.left(108) 466 tleft.forward(20) 467 tleft.right(42) 468 tleft.forward(20) 469 tleft.left(108) 470 tleft.forward(10) 471 tleft.left(72) 472 tleft.forward(20) 473 tleft.penup() 474 tleft.goto(200,500) 475 turtle.done()