用Python画一个冰墩墩!
北京2022年冬奥会的召开,吉祥物冰墩墩着实火了,真的是一墩难求,为了实现冰墩墩的自由,经过资料搜集及参考冰墩墩网上的开源代码(https://github.com/HelloCoder-HaC/bingdundun),用Python自带的画图函数库turtle库,画了一个冰墩墩,大家也可以自己动手试试!先看下效果图(附带源码)
准备工作(window操作系统环境下)
-
安装python环境
-
安装PyCharm编译器
注:安装包都可以在相应的官网进行下载,均是免费版,如果自己懒得下载,也可关注微信公众号<SQL数据库运维>后台回复:冰墩墩
直接上源码
1 #北京冬奥会2022吉祥物冰墩墩绘制 2 import turtle #导入turtle库 3 turtle.setup(800,600) 4 turtle.title('一户一墩 不是梦') #设置画布的标题 5 turtle.speed(10) # 绘制速度,设置画笔的速度(1~10代表从慢到快,0是最快) 6 # 左手 7 turtle.penup() # 抬笔 8 turtle.goto(177, 112) # 移至坐标 9 turtle.pencolor("lightgray") # 设置画笔颜色 10 turtle.pensize(3) 11 turtle.fillcolor("white") 12 turtle.begin_fill() 13 turtle.pendown() 14 turtle.setheading(80) 15 turtle.circle(-45, 200) #画圆 16 turtle.circle(-300, 23) 17 turtle.end_fill() 18 # 左手内 19 turtle.penup() 20 turtle.goto(182, 95) 21 turtle.pencolor("black") 22 turtle.pensize(1) 23 turtle.fillcolor("black") 24 turtle.begin_fill() 25 turtle.setheading(95) 26 turtle.pendown() 27 turtle.circle(-37, 160) 28 turtle.circle(-20, 50) 29 turtle.circle(-200, 30) 30 turtle.end_fill() 31 # 轮廓 32 # 头顶 33 turtle.penup() 34 turtle.goto(-73, 230) 35 turtle.pencolor("lightgray") 36 turtle.pensize(3) 37 turtle.fillcolor("white") 38 turtle.begin_fill() 39 turtle.pendown() 40 turtle.setheading(20) 41 turtle.circle(-250, 35) 42 # 左耳 43 turtle.setheading(50) 44 turtle.circle(-42, 180) 45 # 左侧 46 turtle.setheading(-50) 47 turtle.circle(-190, 30) 48 turtle.circle(-320, 45) 49 # 左腿 50 turtle.circle(120, 30) 51 turtle.circle(200, 12) 52 turtle.circle(-18, 85) 53 turtle.circle(-180, 23) 54 turtle.circle(-20, 110) 55 turtle.circle(15, 115) 56 turtle.circle(100, 12) 57 # 右腿 58 turtle.circle(15, 120) 59 turtle.circle(-15, 110) 60 turtle.circle(-150, 30) 61 turtle.circle(-15, 70) 62 turtle.circle(-150, 10) 63 turtle.circle(200, 35) 64 turtle.circle(-150, 20) 65 # 右手 66 turtle.setheading(-120) 67 turtle.circle(50, 30) 68 turtle.circle(-35, 200) 69 turtle.circle(-300, 23) 70 # 右侧 71 turtle.setheading(86) 72 turtle.circle(-300, 26) 73 # 右耳 74 turtle.setheading(122) 75 turtle.circle(-53, 160) 76 turtle.end_fill() 77 # 右耳内 78 turtle.penup() 79 turtle.goto(-130, 180) 80 turtle.pencolor("black") 81 turtle.pensize(1) 82 turtle.fillcolor("black") 83 turtle.begin_fill() 84 turtle.pendown() 85 turtle.setheading(120) 86 turtle.circle(-28, 160) 87 turtle.setheading(210) 88 turtle.circle(150, 20) 89 turtle.end_fill() 90 # 左耳内 91 turtle.penup() 92 turtle.goto(90, 230) 93 turtle.setheading(40) 94 turtle.begin_fill() 95 turtle.pendown() 96 turtle.circle(-30, 170) 97 turtle.setheading(125) 98 turtle.circle(150, 23) 99 turtle.end_fill() 100 # 右手内 101 turtle.penup() 102 turtle.goto(-180, -55) 103 turtle.fillcolor("black") 104 turtle.begin_fill() 105 turtle.setheading(-120) 106 turtle.pendown() 107 turtle.circle(50, 30) 108 turtle.circle(-27, 200) 109 turtle.circle(-300, 20) 110 turtle.setheading(-90) 111 turtle.circle(300, 14) 112 turtle.end_fill() 113 # 左腿内 114 turtle.penup() 115 turtle.goto(108, -168) 116 turtle.fillcolor("black") 117 turtle.begin_fill() 118 turtle.pendown() 119 turtle.setheading(-115) 120 turtle.circle(110, 15) 121 turtle.circle(200, 10) 122 turtle.circle(-18, 80) 123 turtle.circle(-180, 13) 124 turtle.circle(-20, 90) 125 turtle.circle(15, 60) 126 turtle.setheading(42) 127 turtle.circle(-200, 29) 128 turtle.end_fill() 129 # 右腿内 130 turtle.penup() 131 turtle.goto(-38, -210) 132 turtle.fillcolor("black") 133 turtle.begin_fill() 134 turtle.pendown() 135 turtle.setheading(-155) 136 turtle.circle(15, 100) 137 turtle.circle(-10, 110) 138 turtle.circle(-100, 30) 139 turtle.circle(-15, 65) 140 turtle.circle(-100, 10) 141 turtle.circle(200, 15) 142 turtle.setheading(-14) 143 turtle.circle(-200, 27) 144 turtle.end_fill() 145 # 右眼 146 # 眼圈 147 turtle.penup() 148 turtle.goto(-64, 120) 149 turtle.begin_fill() 150 turtle.pendown() 151 turtle.setheading(40) 152 turtle.circle(-35, 152) 153 turtle.circle(-100, 50) 154 turtle.circle(-35, 130) 155 turtle.circle(-100, 50) 156 turtle.end_fill() 157 # 眼珠 158 turtle.penup() 159 turtle.goto(-47, 55) 160 turtle.fillcolor("white") 161 turtle.begin_fill() 162 turtle.pendown() 163 turtle.setheading(0) 164 turtle.circle(25, 360) 165 turtle.end_fill() 166 turtle.penup() 167 turtle.goto(-45, 62) 168 turtle.pencolor("darkslategray") 169 turtle.fillcolor("darkslategray") 170 turtle.begin_fill() 171 turtle.pendown() 172 turtle.setheading(0) 173 turtle.circle(19, 360) 174 turtle.end_fill() 175 turtle.penup() 176 turtle.goto(-45, 68) 177 turtle.fillcolor("black") 178 turtle.begin_fill() 179 turtle.pendown() 180 turtle.setheading(0) 181 turtle.circle(10, 360) 182 turtle.end_fill() 183 turtle.penup() 184 turtle.goto(-47, 86) 185 turtle.pencolor("white") 186 turtle.fillcolor("white") 187 turtle.begin_fill() 188 turtle.pendown() 189 turtle.setheading(0) 190 turtle.circle(5, 360) 191 turtle.end_fill() 192 # 左眼 193 # 眼圈 194 turtle.penup() 195 turtle.goto(51, 82) 196 turtle.fillcolor("black") 197 turtle.begin_fill() 198 turtle.pendown() 199 turtle.setheading(120) 200 turtle.circle(-32, 152) 201 turtle.circle(-100, 55) 202 turtle.circle(-25, 120) 203 turtle.circle(-120, 45) 204 turtle.end_fill() 205 # 眼珠 206 turtle.penup() 207 turtle.goto(79, 60) 208 turtle.fillcolor("white") 209 turtle.begin_fill() 210 turtle.pendown() 211 turtle.setheading(0) 212 turtle.circle(24, 360) 213 turtle.end_fill() 214 turtle.penup() 215 turtle.goto(79, 64) 216 turtle.pencolor("darkslategray") 217 turtle.fillcolor("darkslategray") 218 turtle.begin_fill() 219 turtle.pendown() 220 turtle.setheading(0) 221 turtle.circle(19, 360) 222 turtle.end_fill() 223 turtle.penup() 224 turtle.goto(79, 70) 225 turtle.fillcolor("black") 226 turtle.begin_fill() 227 turtle.pendown() 228 turtle.setheading(0) 229 turtle.circle(10, 360) 230 turtle.end_fill() 231 turtle.penup() 232 turtle.goto(79, 88) 233 turtle.pencolor("white") 234 turtle.fillcolor("white") 235 turtle.begin_fill() 236 turtle.pendown() 237 turtle.setheading(0) 238 turtle.circle(5, 360) 239 turtle.end_fill() 240 # 鼻子 241 turtle.penup() 242 turtle.goto(37, 80) 243 turtle.fillcolor("black") 244 turtle.begin_fill() 245 turtle.pendown() 246 turtle.circle(-8, 130) 247 turtle.circle(-22, 100) 248 turtle.circle(-8, 130) 249 turtle.end_fill() 250 # 嘴 251 turtle.penup() 252 turtle.goto(-15, 48) 253 turtle.setheading(-36) 254 turtle.begin_fill() 255 turtle.pendown() 256 turtle.circle(60, 70) 257 turtle.setheading(-132) 258 turtle.circle(-45, 100) 259 turtle.end_fill() 260 # 彩虹圈 261 turtle.penup() 262 turtle.goto(-135, 120) 263 turtle.pensize(5) 264 turtle.pencolor("cyan") 265 turtle.pendown() 266 turtle.setheading(60) 267 turtle.circle(-165, 150) 268 turtle.circle(-130, 78) 269 turtle.circle(-250, 30) 270 turtle.circle(-138, 105) 271 turtle.penup() 272 turtle.goto(-131, 116) 273 turtle.pencolor("slateblue") 274 turtle.pendown() 275 turtle.setheading(60) 276 turtle.circle(-160, 144) 277 turtle.circle(-120, 78) 278 turtle.circle(-242, 30) 279 turtle.circle(-135, 105) 280 turtle.penup() 281 turtle.goto(-127, 112) 282 turtle.pencolor("orangered") 283 turtle.pendown() 284 turtle.setheading(60) 285 turtle.circle(-155, 136) 286 turtle.circle(-116, 86) 287 turtle.circle(-220, 30) 288 turtle.circle(-134, 103) 289 turtle.penup() 290 turtle.goto(-123, 108) 291 turtle.pencolor("gold") 292 turtle.pendown() 293 turtle.setheading(60) 294 turtle.circle(-150, 136) 295 turtle.circle(-104, 86) 296 turtle.circle(-220, 30) 297 turtle.circle(-126, 102) 298 turtle.penup() 299 turtle.goto(-120, 104) 300 turtle.pencolor("greenyellow") 301 turtle.pendown() 302 turtle.setheading(60) 303 turtle.circle(-145, 136) 304 turtle.circle(-90, 83) 305 turtle.circle(-220, 30) 306 turtle.circle(-120, 100) 307 turtle.penup() 308 # 爱心 309 turtle.penup() 310 turtle.goto(220, 115) 311 turtle.pencolor("brown") 312 turtle.pensize(1) 313 turtle.fillcolor("brown") 314 turtle.begin_fill() 315 turtle.pendown() 316 turtle.setheading(36) 317 turtle.circle(-8, 180) 318 turtle.circle(-60, 24) 319 turtle.setheading(110) 320 turtle.circle(-60, 24) 321 turtle.circle(-8, 180) 322 turtle.end_fill() 323 # 五环 324 turtle.penup() 325 turtle.goto(-25, -170) 326 turtle.pendown() 327 turtle.pencolor("blue") 328 turtle.circle(6) 329 turtle.penup() 330 turtle.goto(-10, -170) 331 turtle.pendown() 332 turtle.pencolor("black") 333 turtle.circle(6) 334 turtle.penup() 335 turtle.goto(5, -170) 336 turtle.pendown() 337 turtle.pencolor("brown") 338 turtle.circle(6) 339 turtle.penup() 340 turtle.goto(-18, -175) 341 turtle.pendown() 342 turtle.pencolor("lightgoldenrod") 343 turtle.circle(6) 344 turtle.penup() 345 turtle.goto(-2, -175) 346 turtle.pendown() 347 turtle.pencolor("green") 348 turtle.circle(6) 349 turtle.penup() 350 turtle.pencolor("black") 351 turtle.goto(-40, -160) 352 turtle.write("BEIJING 2022", font=('Arial', 10, 'bold italic')) 353 # 输出右边文字 354 printer = turtle.Turtle() 355 printer.hideturtle() 356 printer.penup() 357 printer.goto(300,150) 358 printer.write("你\n\n",move = True, align="left", font=("楷体", 31, "bold")) 359 printer.goto(300,100) 360 printer.write("好\n\n",move = True, align="left", font=("楷体", 31, "bold")) 361 printer.goto(300,-100) 362 printer.write("我\n\n",move = True, align="left", font=("楷体", 31, "bold")) 363 printer.goto(300,-150) 364 printer.write("是\n\n",move = True, align="left", font=("楷体", 31, "bold")) 365 printer.goto(300,-200) 366 printer.write("冰\n\n",move = True, align="left", font=("楷体", 31, "bold")) 367 printer.goto(300,-250) 368 printer.write("墩\n\n",move = True, align="left", font=("楷体", 31, "bold")) 369 printer.goto(300,-300) 370 printer.write("墩\n\n",move = True, align="left", font=("楷体", 31, "bold")) 371 # 完成 372 turtle.hideturtle() 373 turtle.done()
感兴趣的小伙伴,赶快动手试试吧,拥有一个自己的冰墩墩!!!