废话不多说,直接上图
1. 皮卡丘
import turtle def getPosition(x, y): turtle.setx(x) turtle.sety(y) print(x, y) class Pikachu: def __init__(self): self.t = turtle.Turtle() t = self.t t.pensize(3) t.speed(9) t.ondrag(getPosition) def noTrace_goto(self, x, y): self.t.penup() self.t.goto(x, y) self.t.pendown() def leftEye(self, x, y): self.noTrace_goto(x, y) t = self.t t.seth(0) t.fillcolor('#333333') t.begin_fill() t.circle(22) t.end_fill() self.noTrace_goto(x, y + 10) t.fillcolor('#000000') t.begin_fill() t.circle(10) t.end_fill() self.noTrace_goto(x + 6, y + 22) t.fillcolor('#ffffff') t.begin_fill() t.circle(10) t.end_fill() def rightEye(self, x, y): self.noTrace_goto(x, y) t = self.t t.seth(0) t.fillcolor('#333333') t.begin_fill() t.circle(22) t.end_fill() self.noTrace_goto(x, y + 10) t.fillcolor('#000000') t.begin_fill() t.circle(10) t.end_fill() self.noTrace_goto(x - 6, y + 22) t.fillcolor('#ffffff') t.begin_fill() t.circle(10) t.end_fill() def mouth(self, x, y): self.noTrace_goto(x, y) t = self.t t.fillcolor('#88141D') t.begin_fill() # 下嘴唇 l1 = [] l2 = [] t.seth(190) a = 0.7 for i in range(28): a += 0.1 t.right(3) t.fd(a) l1.append(t.position()) self.noTrace_goto(x, y) t.seth(10) a = 0.7 for i in range(28): a += 0.1 t.left(3) t.fd(a) l2.append(t.position()) # 上嘴唇 t.seth(10) t.circle(50, 15) t.left(180) t.circle(-50, 15) t.circle(-50, 40) t.seth(233) t.circle(-50, 55) t.left(180) t.circle(50, 12.1) t.end_fill() # 舌头 self.noTrace_goto(17, 54) t.fillcolor('#DD716F') t.begin_fill() t.seth(145) t.circle(40, 86) t.penup() for pos in reversed(l1[:20]): t.goto(pos[0], pos[1] + 1.5) for pos in l2[:20]: t.goto(pos[0], pos[1] + 1.5) t.pendown() t.end_fill() # 鼻子 self.noTrace_goto(-17, 94) t.seth(8) t.fd(4) t.back(8) # 红脸颊 def leftCheek(self, x, y): turtle.tracer(False) t = self.t self.noTrace_goto(x, y) t.seth(300) t.fillcolor('#DD4D28') t.begin_fill() a = 2.3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 t.lt(3) t.fd(a) else: a += 0.05 t.lt(3) t.fd(a) t.end_fill() turtle.tracer(True) def rightCheek(self, x, y): t = self.t turtle.tracer(False) self.noTrace_goto(x, y) t.seth(60) t.fillcolor('#DD4D28') t.begin_fill() a = 2.3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 t.lt(3) t.fd(a) else: a += 0.05 t.lt(3) t.fd(a) t.end_fill() turtle.tracer(True) def colorLeftEar(self, x, y): t = self.t self.noTrace_goto(x, y) t.fillcolor('#000000') t.begin_fill() t.seth(330) t.circle(100, 35) t.seth(219) t.circle(-300, 19) t.seth(110) t.circle(-30, 50) t.circle(-300, 10) t.end_fill() def colorRightEar(self, x, y): t = self.t self.noTrace_goto(x, y) t.fillcolor('#000000') t.begin_fill() t.seth(300) t.circle(-100, 30) t.seth(35) t.circle(300, 15) t.circle(30, 50) t.seth(190) t.circle(300, 17) t.end_fill() def body(self): t = self.t t.fillcolor('#F6D02F') t.begin_fill() # 右脸轮廓 t.penup() t.circle(130, 40) t.pendown() t.circle(100, 105) t.left(180) t.circle(-100, 5) # 右耳朵 t.seth(20) t.circle(300, 30) t.circle(30, 50) t.seth(190) t.circle(300, 36) # 上轮廓 t.seth(150) t.circle(150, 70) # 左耳朵 t.seth(200) t.circle(300, 40) t.circle(30, 50) t.seth(20) t.circle(300, 35) # print(t.pos()) # 左脸轮廓 t.seth(240) t.circle(105, 95) t.left(180) t.circle(-105, 5) # 左手 t.seth(210) t.circle(500, 18) t.seth(200) t.fd(10) t.seth(280) t.fd(7) t.seth(210) t.fd(10) t.seth(300) t.circle(10, 80) t.seth(220) t.fd(10) t.seth(300) t.circle(10, 80) t.seth(240) t.fd(12) t.seth(0) t.fd(13) t.seth(240) t.circle(10, 70) t.seth(10) t.circle(10, 70) t.seth(10) t.circle(300, 18) t.seth(75) t.circle(500, 8) t.left(180) t.circle(-500, 15) t.seth(250) t.circle(100, 65) # 左脚 t.seth(320) t.circle(100, 5) t.left(180) t.circle(-100, 5) t.seth(220) t.circle(200, 20) t.circle(20, 70) t.seth(60) t.circle(-100, 20) t.left(180) t.circle(100, 20) t.seth(300) t.circle(10, 70) t.seth(60) t.circle(-100, 20) t.left(180) t.circle(100, 20) t.seth(10) t.circle(100, 60) # 横向 t.seth(180) t.circle(-100, 10) t.left(180) t.circle(100, 10) t.seth(5) t.circle(100, 10) t.circle(-100, 40) t.circle(100, 35) t.left(180) t.circle(-100, 10) # 右脚 t.seth(290) t.circle(100, 55) t.circle(10, 50) t.seth(120) t.circle(100, 20) t.left(180) t.circle(-100, 20) t.seth(0) t.circle(10, 50) t.seth(110) t.circle(100, 20) t.left(180) t.circle(-100, 20) t.seth(30) t.circle(20, 50) t.seth(100) t.circle(100, 40) # 右侧身体轮廓 t.seth(200) t.circle(-100, 5) t.left(180) t.circle(100, 5) t.left(30) t.circle(100, 75) t.right(15) t.circle(-300, 21) t.left(180) t.circle(300, 3) # 右手 t.seth(43) t.circle(200, 60) t.right(10) t.fd(10) t.circle(5, 160) t.seth(90) t.circle(5, 160) t.seth(90) t.fd(10) t.seth(90) t.circle(5, 180) t.fd(10) t.left(180) t.left(20) t.fd(10) t.circle(5, 170) t.fd(10) t.seth(240) t.circle(50, 30) t.end_fill() self.noTrace_goto(130, 125) t.seth(-20) t.fd(5) t.circle(-5, 160) t.fd(5) # 手指纹 self.noTrace_goto(166, 130) t.seth(-90) t.fd(3) t.circle(-4, 180) t.fd(3) t.seth(-90) t.fd(3) t.circle(-4, 180) t.fd(3) # 尾巴 self.noTrace_goto(168, 134) t.fillcolor('#F6D02F') t.begin_fill() t.seth(40) t.fd(200) t.seth(-80) t.fd(150) t.seth(210) t.fd(150) t.left(90) t.fd(100) t.right(95) t.fd(100) t.left(110) t.fd(70) t.right(110) t.fd(80) t.left(110) t.fd(30) t.right(110) t.fd(32) t.right(106) t.circle(100, 25) t.right(15) t.circle(-300, 2) ############## # print(t.pos()) t.seth(30) t.fd(40) t.left(100) t.fd(70) t.right(100) t.fd(80) t.left(100) t.fd(46) t.seth(66) t.circle(200, 38) t.right(10) t.fd(10) t.end_fill() # 尾巴花纹 t.fillcolor('#923E24') self.noTrace_goto(126.82, -156.84) t.begin_fill() t.seth(30) t.fd(40) t.left(100) t.fd(40) t.pencolor('#923e24') t.seth(-30) t.fd(30) t.left(140) t.fd(20) t.right(150) t.fd(20) t.left(150) t.fd(20) t.right(150) t.fd(20) t.left(130) t.fd(18) t.pencolor('#000000') t.seth(-45) t.fd(67) t.right(110) t.fd(80) t.left(110) t.fd(30) t.right(110) t.fd(32) t.right(106) t.circle(100, 25) t.right(15) t.circle(-300, 2) t.end_fill() # 帽子、眼睛、嘴巴、脸颊 self.cap(-134.07, 147.81) self.mouth(-5, 25) self.leftCheek(-126, 32) self.rightCheek(107, 63) self.colorLeftEar(-250, 100) self.colorRightEar(140, 270) self.leftEye(-85, 90) self.rightEye(50, 110) t.hideturtle() def cap(self, x, y): self.noTrace_goto(x, y) t = self.t t.fillcolor('#CD0000') t.begin_fill() t.seth(200) t.circle(400, 7) t.left(180) t.circle(-400, 30) t.circle(30, 60) t.fd(50) t.circle(30, 45) t.fd(60) t.left(5) t.circle(30, 70) t.right(20) t.circle(200, 70) t.circle(30, 60) t.fd(70) # print(t.pos()) t.right(35) t.fd(50) t.circle(8, 100) t.end_fill() self.noTrace_goto(-168.47, 185.52) t.seth(36) t.circle(-270, 54) t.left(180) t.circle(270, 27) t.circle(-80, 98) t.fillcolor('#444444') t.begin_fill() t.left(180) t.circle(80, 197) t.left(58) t.circle(200, 45) t.end_fill() self.noTrace_goto(-58, 270) t.pencolor('#228B22') t.dot(35) self.noTrace_goto(-30, 280) t.fillcolor('#228B22') t.begin_fill() t.seth(100) t.circle(30, 180) t.seth(190) t.fd(15) t.seth(100) t.circle(-45, 180) t.right(90) t.fd(15) t.end_fill() t.pencolor('#000000') def start(self): self.body() def main(): print('Painting the Pikachu... ') turtle.screensize(800, 600) turtle.title('Pikachu') pikachu = Pikachu() pikachu.start() turtle.mainloop() if __name__ == '__main__': main()
2. 小樱的魔法阵
import turtle as t import time def tcyuan(x, y, r): t.fillcolor("black") t.begin_fill() t.seth(0) y = y - r t.penup() t.goto(x, y) t.pendown() t.circle(r) t.end_fill() def yuan(x, y, r): t.seth(0) y = y - r t.penup() t.goto(x, y) t.pendown() t.circle(r) def yueliang(): R = 110 - 1 r = R - 22 - 1 # 月亮填充 t.penup() t.goto(-350 + 2 * R, 0) t.seth(90) t.fillcolor("black") t.begin_fill() t.circle(R, 359) t.left(90) t.fd(2) t.left(90) t.circle(-r, 359) t.left(90) t.fd(2) t.pendown() t.end_fill() # 轮廓 yuan(-350 + R, 0, R) yuan(-350 + 44 + r - 2, 0, r - 2) def zhixian(R, r, count, jiaodu): t.seth(90 + jiaodu) # t.goto(0, 0) for i in range(count): t.penup() t.goto(0, 0) t.fd(r) t.pendown() t.fd(R - r) t.left(360 / count) def zfx(R, r): jiange = 10 # t.pensize(jiange) t.seth(90) big = pow((R ** 2) * 2, 0.5) small = big - 2 * jiange for i in range(13): # 大线 t.penup() t.goto(0, 0) t.fd(R) t.pendown() t.right(135) t.fd(big) # 小线 t.left(135) t.penup() t.goto(0, 0) t.fd(pow((small ** 2) / 2, 0.5)) t.pendown() t.right(135) t.fd(small) # 粗线 t.pensize(8) t.pencolor("black") t.left(135) t.penup() t.goto(0, 0) t.fd((R + pow((small ** 2) / 2, 0.5)) / 2) t.pendown() t.right(135) t.fd((big + small) / 2) t.pensize(2) t.pencolor("yellow") t.seth(90 + i * 30) else: # 大线 t.penup() t.goto(0, 0) t.fd(R) t.right(135) t.fd(big / 2) t.pendown() t.fd(big / 2) # 小线 t.left(135) t.penup() t.goto(0, 0) t.fd(pow((small ** 2) / 2, 0.5)) t.right(135) t.fd(small / 2) t.pendown() t.fd(small / 2) # 粗线 t.pensize(8) t.pencolor("black") t.left(135) t.penup() t.goto(0, 0) t.fd((R + pow((small ** 2) / 2, 0.5)) / 2) t.right(135) t.fd((big + small) / 2 / 2) t.pendown() t.fd((big + small) / 2 / 2) t.pensize(2) t.pencolor("yellow") t.seth(90 + i * 30) def wjx(r, jiaodu): t.fillcolor("black") t.penup() t.goto(0, 0) t.seth(90 + jiaodu) t.fd(r) t.pendown() t.right(18) t.begin_fill() for i in range(5): t.right(144) t.forward(144) t.left(72) t.forward(144) t.end_fill() if jiaodu != 0: t.seth(90 + jiaodu) for i in range(1, 6): t.penup() t.goto(0, 0) t.left(72) t.pendown() t.fd(r) def xingzuo(): r = 250 t.penup() t.goto(20, -35) t.seth(-45) t.fd(r) t.pendown() xz = ['♒', '♓', '♈', '♉', '♌', '♍', '♎', '♏'] for i in range(4): t.write(xz[i], font=("", 20, "")) t.penup() t.right(90) t.circle(-300, 30) t.left(90) t.pendown() t.penup() t.goto(-r / 4 + 10, 5) t.seth(135) t.fd(r) for i in range(4, 8): t.write(xz[i], font=("", 20, "")) t.penup() t.right(90) t.circle(-300, 30) t.left(90) t.pendown() def dxnb(s): t.penup() t.fd(-19) t.left(90) t.fd(2) t.pendown() t.write(s, font=["KaiTi", 30, "bold"]) def taiyang(): def haicao(r, i): # 海藻 t.fillcolor("black") t.penup() if i == 0: t.goto(256, r) elif i == 1: t.goto(256 - r, 0) else: t.goto(256, -r) t.pendown() t.begin_fill() t.seth(2 + i * 90) t.circle(r / 2, 105) t.left(10) t.circle(-r / 3, 90) t.circle(r / 3, 60) t.left(20) t.circle(r / 3, -80) t.left(50) t.circle(-r + 10, -40) t.right(30) t.circle(r / 2 + 10, -50) t.penup() if i == 0: t.goto(256, r) elif i == 1: t.goto(256 - r, 0) else: t.goto(256, -r) t.pendown() t.end_fill() t.seth(2 + i * 90) t.circle(r / 2, 105) t.left(10) t.circle(-r / 3, 90) t.begin_fill() t.circle(r / 3, 60) t.left(20) t.circle(r / 3, -80) t.left(50) t.circle(-r + 10, -40) t.right(30) t.circle(r / 2 + 10, -50) t.right(30) t.circle(r / 2 - 2, 110) t.circle(-r / 3, 70) t.left(7) t.circle(r / 3, 85) t.end_fill() t.penup() if i == 0: t.goto(256, r) t.pendown() t.seth(180 - (2 + i * 90)) t.circle(-(r / 2), 105) elif i == 1: t.goto(256 - r, 0) t.pendown() t.seth(- (2 + i * 90)) t.circle(-(r / 2), 105) else: t.goto(256, -r) t.pendown() t.seth(180 - (2 + i * 90)) t.circle(-(r / 2), 105) t.begin_fill() t.left(-10) t.circle(-(-r / 3), 90) t.circle(-(r / 3), 60) t.left(-20) t.circle(-(r / 3), -80) t.left(-50) t.circle(-(-r + 10), -40) t.right(-30) t.circle(-(r / 2 + 10), -50) t.end_fill() t.penup() if i == 0: t.goto(256, r) t.pendown() t.seth(180 - (2 + i * 90)) t.circle(-(r / 2), 105) elif i == 1: t.goto(256 - r, 0) t.pendown() t.seth(- (2 + i * 90)) t.circle(-(r / 2), 105) else: t.goto(256, -r) t.pendown() t.seth(180 - (2 + i * 90)) t.circle(-(r / 2), 105) t.pendown() t.left(-10) t.circle(-(-r / 3), 90) t.circle(-(r / 3), 60) t.left(-20) t.begin_fill() t.circle(-(r / 3), -80) t.left(-50) t.circle(-(-r + 10), -40) t.right(-30) t.circle(-(r / 2 + 10), -50) t.right(-30) t.circle(-(r / 2 - 2), 110) t.circle(-(-r / 3), 70) t.left(-7) t.circle(-(r / 3), 85) t.end_fill() def xhaicao(r, i): t.penup() t.goto(256 + r, 0) t.seth(-90) t.circle(-r, 20) t.pendown() t.begin_fill() t.seth(30) t.circle(-r / 3, 100) t.circle(r / 6, 140) t.circle(-r / 11, 100) t.left(80) t.circle(-r / 2, -30) t.circle(r / 4, -140) t.circle(-r / 3, -60) t.end_fill() t.penup() t.goto(256 + r, 0) t.seth(-90) t.circle(-r, 30) t.pendown() t.seth(45) t.circle(-r / 4, 100) t.right(20) t.circle(r / 4, 140) t.right(10) t.circle(-r / 11, 90) t.penup() t.goto(256 + r, 0) t.seth(90) t.circle(r, 20) t.pendown() t.begin_fill() t.seth(-30) t.circle(-(-r / 3), 100) t.circle(-(r / 6), 140) t.circle(-(-r / 11), 100) t.left(-80) t.circle(-(-r / 2), -30) t.circle(-(r / 4), -140) t.circle(-(-r / 3), -60) t.end_fill() t.penup() t.goto(256 + r, 0) t.seth(90) t.circle(r, 30) t.pendown() t.seth(-45) t.circle(-(-r / 4), 100) t.right(-25) t.circle(-(r / 4), 140) t.right(-10) t.circle(-(-r / 11), 90) r = 50 # 海藻 haicao(r, 0) haicao(r, 1) haicao(r, 2) xhaicao(r, 3) # 大三角形 t.fillcolor("black") for i in range(1, 4): temp = 3 t.penup() t.goto(256, 0) t.seth(i * 90) t.pendown() t.begin_fill() t.right(22.5) t.fd(r) if i == 1: t.goto(256, 3 * r - temp) t.goto(256, 0) t.seth(i * 90 + 22.5) t.fd(r) t.goto(256, 3 * r - temp) elif i == 2: t.goto(256 - 3 * r + temp, 0) t.goto(256, 0) t.seth(i * 90 + 22.5) t.fd(r) t.goto(256 - 3 * r + temp, 0) else: t.goto(256, -3 * r + temp) t.goto(256, 0) t.seth(i * 90 + 22.5) t.fd(r) t.goto(256, -3 * r + temp) t.end_fill() # 小三角形 x = pow(((2 * r) ** 2) / 2, 0.5) - 8 for i in range(1, 5): t.penup() t.goto(256, 0) t.seth(i * 90) t.pendown() t.begin_fill() t.right(22.5) t.fd(r) if i == 1: t.goto(256 + x, x) t.goto(256, 0) t.right(45) t.fd(r) t.goto(256 + x, x) elif i == 2: t.goto(256 - x, x) t.goto(256, 0) t.right(45) t.fd(r) t.goto(256 - x, x) elif i == 3: t.goto(256 - x, -x) t.goto(256, 0) t.right(45) t.fd(r) t.goto(256 - x, -x) else: t.goto(256 + x, -x) t.goto(256, 0) t.right(45) t.fd(r) t.goto(256 + x, -x) t.end_fill() # 圆 # t.begin_fill() tcyuan(256, 0, r) # 初始化 t.setup(1500, 800, 0, 0) t.speed(0) t.bgcolor("black") t.pencolor("yellow") t.pensize(2) # 最大的圆 yuan(0, 0, 350) yuan(0, 0, 325) yuan(0, 0, 321) yuan(0, 0, 306) zhixian(321, 306, 72, 0) # 小圆 yuan(0, 0, 204) yuan(0, 0, 200) yuan(0, 0, 186) zhixian(200, 186, 72, 0) # 正方形边框以及直线 zhixian(290, 213, 12, 0) zhixian(248, 205, 12, 15) zfx(306, 204) # 里五角星 wjx(200, 36) # 月亮 yueliang() # 太阳 taiyang() # 最小圆 tcyuan(0, 328, 22) dxnb("北") tcyuan(0, -328, 22) dxnb("南") tcyuan(-328, 0, 22) dxnb("西") tcyuan(328, 0, 22) dxnb("東") xingzuo() #展示 time.sleep(30) #展示时间30s
3. 小猪佩奇
import turtle as t t.pensize(4) t.hideturtle() t.colormode(255) t.color((255, 155, 192), "pink") t.setup(840, 500) t.speed(20) # 鼻子 t.pu() t.goto(-100, 100) t.pd() t.seth(-30) t.begin_fill() a = 0.4 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.08 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.08 t.lt(3) t.fd(a) t.end_fill() t.pu() t.seth(90) t.fd(25) t.seth(0) t.fd(10) t.pd() t.pencolor(255, 155, 192) t.seth(10) t.begin_fill() t.circle(5) t.color(160, 82, 45) t.end_fill() t.pu() t.seth(0) t.fd(20) t.pd() t.pencolor(255, 155, 192) t.seth(10) t.begin_fill() t.circle(5) t.color(160, 82, 45) t.end_fill() # 头 t.color((255, 155, 192), "pink") t.pu() t.seth(90) t.fd(41) t.seth(0) t.fd(0) t.pd() t.begin_fill() t.seth(180) t.circle(300, -30) t.circle(100, -60) t.circle(80, -100) t.circle(150, -20) t.circle(60, -95) t.seth(161) t.circle(-300, 15) t.pu() t.goto(-100, 100) t.pd() t.seth(-30) a = 0.4 for i in range(60): if 0 <= i < 30 or 60 <= i < 90: a = a + 0.08 t.lt(3) # 向左转3度 t.fd(a) # 向前走a的步长 else: a = a - 0.08 t.lt(3) t.fd(a) t.end_fill() # 耳朵 t.color((255, 155, 192), "pink") t.pu() t.seth(90) t.fd(-7) t.seth(0) t.fd(70) t.pd() t.begin_fill() t.seth(100) t.circle(-50, 50) t.circle(-10, 120) t.circle(-50, 54) t.end_fill() t.pu() t.seth(90) t.fd(-12) t.seth(0) t.fd(30) t.pd() t.begin_fill() t.seth(100) t.circle(-50, 50) t.circle(-10, 120) t.circle(-50, 56) t.end_fill() # 眼睛 t.color((255, 155, 192), "white") t.pu() t.seth(90) t.fd(-20) t.seth(0) t.fd(-95) t.pd() t.begin_fill() t.circle(15) t.end_fill() t.color("black") t.pu() t.seth(90) t.fd(12) t.seth(0) t.fd(-3) t.pd() t.begin_fill() t.circle(3) t.end_fill() t.color((255, 155, 192), "white") t.pu() t.seth(90) t.fd(-25) t.seth(0) t.fd(40) t.pd() t.begin_fill() t.circle(15) t.end_fill() t.color("black") t.pu() t.seth(90) t.fd(12) t.seth(0) t.fd(-3) t.pd() t.begin_fill() t.circle(3) t.end_fill() # 腮 t.color((255, 155, 192)) t.pu() t.seth(90) t.fd(-95) t.seth(0) t.fd(65) t.pd() t.begin_fill() t.circle(30) t.end_fill() # 嘴 t.color(239, 69, 19) t.pu() t.seth(90) t.fd(15) t.seth(0) t.fd(-100) t.pd() t.seth(-80) t.circle(30, 40) t.circle(40, 80) # 身体 t.color("red", (255, 99, 71)) t.pu() t.seth(90) t.fd(-20) t.seth(0) t.fd(-78) t.pd() t.begin_fill() t.seth(-130) t.circle(100, 10) t.circle(300, 30) t.seth(0) t.fd(230) t.seth(90) t.circle(300, 30) t.circle(100, 3) t.color((255, 155, 192), (255, 100, 100)) t.seth(-135) t.circle(-80, 63) t.circle(-150, 24) t.end_fill() # 手 t.color((255, 155, 192)) t.pu() t.seth(90) t.fd(-40) t.seth(0) t.fd(-27) t.pd() t.seth(-160) t.circle(300, 15) t.pu() t.seth(90) t.fd(15) t.seth(0) t.fd(0) t.pd() t.seth(-10) t.circle(-20, 90) t.pu() t.seth(90) t.fd(30) t.seth(0) t.fd(237) t.pd() t.seth(-20) t.circle(-300, 15) t.pu() t.seth(90) t.fd(20) t.seth(0) t.fd(0) t.pd() t.seth(-170) t.circle(20, 90) # 脚 t.pensize(10) t.color((240, 128, 128)) t.pu() t.seth(90) t.fd(-75) t.seth(0) t.fd(-180) t.pd() t.seth(-90) t.fd(40) t.seth(-180) t.color("black") t.pensize(15) t.fd(20) t.pensize(10) t.color((240, 128, 128)) t.pu() t.seth(90) t.fd(40) t.seth(0) t.fd(90) t.pd() t.seth(-90) t.fd(40) t.seth(-180) t.color("black") t.pensize(15) t.fd(20) # 尾巴 t.pensize(4) t.color((255, 155, 192)) t.pu() t.seth(90) t.fd(70) t.seth(0) t.fd(95) t.pd() t.seth(0) t.circle(70, 20) t.circle(10, 330) t.circle(70, 30) t.exitonclick()
4. 类似网页皮卡丘
from turtle import * import time screensize(650, 500, "yellow") setup(800, 550) penup() goto(-185, 65) pendown() pensize(5) color("black") begin_fill() circle(50, 360) end_fill() penup() goto(-210, 110) pendown() pensize(5) color("white") begin_fill() circle(20, 360) end_fill() penup() goto(185, 65) pendown() pensize(5) color("black") begin_fill() circle(50, 360) end_fill() penup() goto(160, 110) pendown() pensize(5) color("white") begin_fill() circle(20, 360) end_fill() penup() goto(-270, -130) pendown() color("red") begin_fill() circle(75, 360) end_fill() penup() goto(270, -130) pendown() color("red") begin_fill() circle(75, 360) end_fill() penup() color("black") begin_fill() pensize() goto(0, 30) seth(30) pendown() fd(30) penup() seth(120) pendown() circle(30, 120) penup() seth(150) pendown() color("black") fd(-30) end_fill() penup() goto(0, 5) seth(190) pensize(3) pendown() fd(130) seth(150) circle(-30, 50) penup() goto(0, 5) seth(-10) pensize(3) pendown() fd(130) seth(30) circle(30, 50) penup() goto(-100, -15) seth(290) pendown() fd(180) penup()from turtle import* import time # 设置抬笔跳跃 def my_goto(x, y): penup() goto(x, y) pendown() # 绘制项圈 def collar(): color("red") pencolor("black") begin_fill() my_goto(-100, 0) lt(10) circle(-800, 20) rt(70) fd(10) goto(-100, -10) goto(-100, 0) end_fill() # 绘制大脸 def face(): color("sky blue") pencolor("black") begin_fill() lt(46) circle(251,-293) lt(10) circle(200,273) end_fill() # 绘制眼睛 def eyes(): # 绘制左眼 my_goto(-45,338) color("white") begin_fill() pencolor("black") tracer(False) a = 3 rt(45) for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 lt(3) fd(a) else: a += 0.05 lt(3) fd(a) tracer(True) end_fill() # 绘制左眼球 color("black") begin_fill() pencolor("black") my_goto(-5, 320) circle(15) end_fill() color("white") begin_fill() my_goto(10, 318) circle(5) end_fill() # 绘制右眼 my_goto(45,338) color("white") begin_fill() pencolor("black") tracer(False) a = 3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 lt(3) fd(a) else: a += 0.05 lt(3) fd(a) tracer(True) end_fill() # 绘制右黑眼球 color("black") begin_fill() pencolor("black") my_goto(50,320) circle(15) end_fill() color("white") begin_fill() my_goto(54, 318) circle(5) end_fill() # 绘制鼻子 def nose(): pensize(3) color("red") begin_fill() pencolor("black") my_goto(4,272) circle(35) end_fill() # 绘制鼻尖 color("white") begin_fill() my_goto(33, 290) circle(5) end_fill() # 绘制嘴巴 def mouse(): pencolor("black") my_goto(38,202) goto(38,50) my_goto(-110,160) lt(15) circle(150,150) # 绘制胡子 def beard(): pencolor("black") pensize(4) # 绘制左边的胡子 my_goto(-120,200) goto(-20,180) my_goto(-120, 170) goto(-20,160) my_goto(-120, 130) goto(-20,140) # 绘制右边的胡子 my_goto(196,200) goto(96,180) my_goto(196, 170) goto(96,160) my_goto(196, 130) goto(96,140) # 绘制猫身 def body(): color("sky blue") begin_fill() pencolor("black") # 左半边的身子 my_goto(-100, -10) rt(35) fd(-180) circle(-50,-180) fd(-80) lt(50) fd(-60) fd(190) rt(30) fd(60) lt(115) fd(80) lt(10) fd(65) #机器猫的裤裆 lt(90) circle(-35,190) lt(90) fd(65) rt(-10) fd(80) # 右半边的身子 lt(115) fd(60) rt(35) fd(190) fd(-60) rt(60) fd(180) circle(50,180) goto(185,-10) goto(-100, -10) end_fill() # 绘制猫肚子 def belly(): color("white") pencolor("black") begin_fill() my_goto(-80,-10) seth(0) lt(80) circle(-120, -200) end_fill() my_goto(-10,-70) seth(0) lt(80) circle(-50, -200) goto(-10,-70) # 绘制铃铛 def bell(): my_goto(38,-10) seth(180) color("yellow") begin_fill() pencolor("black") circle(20) end_fill() # 绘制双手 def hand(): # 绘制左手 color("white") begin_fill() pencolor("black") my_goto(-230,-125) circle(60) end_fill() # 绘制右手 color("white") begin_fill() pencolor("black") my_goto(380, 50) circle(60) end_fill() # 绘制双脚 def foot(): # 绘制左脚 color("white") begin_fill() pencolor("black") my_goto(-10, -330) seth(0) fd(10) circle(-35, 180) fd(140) circle(-35, 180) # fd(10) goto(-10,-330) end_fill() # 绘制右脚 color("white") begin_fill() pencolor("black") my_goto(220, -330) seth(0) fd(10) circle(-35, 180) fd(140) circle(-35, 180) # fd(10) goto(220,-330) end_fill() # 署名及日期落款 def auther_name(): my_goto(380, 150) write('Go! GO! ---2021/12/26', font=("Bradley Hand ITC", 18, "bold")) # 调用函数 def main(): hideturtle() speed(2) pensize(3) collar() face() eyes() nose() mouse() beard() body() belly() bell() hand() foot() auther_name() exitonclick() if __name__ == '__main__': main() time.sleep(20) #停止20s goto(100, -15) seth(-110) pendown() fd(180) circle(-40, 140) time.sleep(20) #停20秒
5.哆啦A梦
from turtle import* import time # 设置抬笔跳跃 def my_goto(x, y): penup() goto(x, y) pendown() # 绘制项圈 def collar(): color("red") pencolor("black") begin_fill() my_goto(-100, 0) lt(10) circle(-800, 20) rt(70) fd(10) goto(-100, -10) goto(-100, 0) end_fill() # 绘制大脸 def face(): color("sky blue") pencolor("black") begin_fill() lt(46) circle(251,-293) lt(10) circle(200,273) end_fill() # 绘制眼睛 def eyes(): # 绘制左眼 my_goto(-45,338) color("white") begin_fill() pencolor("black") tracer(False) a = 3 rt(45) for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 lt(3) fd(a) else: a += 0.05 lt(3) fd(a) tracer(True) end_fill() # 绘制左眼球 color("black") begin_fill() pencolor("black") my_goto(-5, 320) circle(15) end_fill() color("white") begin_fill() my_goto(10, 318) circle(5) end_fill() # 绘制右眼 my_goto(45,338) color("white") begin_fill() pencolor("black") tracer(False) a = 3 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 lt(3) fd(a) else: a += 0.05 lt(3) fd(a) tracer(True) end_fill() # 绘制右黑眼球 color("black") begin_fill() pencolor("black") my_goto(50,320) circle(15) end_fill() color("white") begin_fill() my_goto(54, 318) circle(5) end_fill() # 绘制鼻子 def nose(): pensize(3) color("red") begin_fill() pencolor("black") my_goto(4,272) circle(35) end_fill() # 绘制鼻尖 color("white") begin_fill() my_goto(33, 290) circle(5) end_fill() # 绘制嘴巴 def mouse(): pencolor("black") my_goto(38,202) goto(38,50) my_goto(-110,160) lt(15) circle(150,150) # 绘制胡子 def beard(): pencolor("black") pensize(4) # 绘制左边的胡子 my_goto(-120,200) goto(-20,180) my_goto(-120, 170) goto(-20,160) my_goto(-120, 130) goto(-20,140) # 绘制右边的胡子 my_goto(196,200) goto(96,180) my_goto(196, 170) goto(96,160) my_goto(196, 130) goto(96,140) # 绘制猫身 def body(): color("sky blue") begin_fill() pencolor("black") # 左半边的身子 my_goto(-100, -10) rt(35) fd(-180) circle(-50,-180) fd(-80) lt(50) fd(-60) fd(190) rt(30) fd(60) lt(115) fd(80) lt(10) fd(65) #机器猫的裤裆 lt(90) circle(-35,190) lt(90) fd(65) rt(-10) fd(80) # 右半边的身子 lt(115) fd(60) rt(35) fd(190) fd(-60) rt(60) fd(180) circle(50,180) goto(185,-10) goto(-100, -10) end_fill() # 绘制猫肚子 def belly(): color("white") pencolor("black") begin_fill() my_goto(-80,-10) seth(0) lt(80) circle(-120, -200) end_fill() my_goto(-10,-70) seth(0) lt(80) circle(-50, -200) goto(-10,-70) # 绘制铃铛 def bell(): my_goto(38,-10) seth(180) color("yellow") begin_fill() pencolor("black") circle(20) end_fill() # 绘制双手 def hand(): # 绘制左手 color("white") begin_fill() pencolor("black") my_goto(-230,-125) circle(60) end_fill() # 绘制右手 color("white") begin_fill() pencolor("black") my_goto(380, 50) circle(60) end_fill() # 绘制双脚 def foot(): # 绘制左脚 color("white") begin_fill() pencolor("black") my_goto(-10, -330) seth(0) fd(10) circle(-35, 180) fd(140) circle(-35, 180) # fd(10) goto(-10,-330) end_fill() # 绘制右脚 color("white") begin_fill() pencolor("black") my_goto(220, -330) seth(0) fd(10) circle(-35, 180) fd(140) circle(-35, 180) # fd(10) goto(220,-330) end_fill() # 署名及日期落款 def auther_name(): my_goto(380, 150) write('Go! GO! ---2021/12/26', font=("Bradley Hand ITC", 18, "bold")) # 调用函数 def main(): hideturtle() speed(2) pensize(3) collar() face() eyes() nose() mouse() beard() body() belly() bell() hand() foot() auther_name() exitonclick() if __name__ == '__main__': main() time.sleep(20) #停止20s
6. 螺旋线
import turtle import time t = turtle.Pen() for i in range(360): t.forward(i) t.left(59) time.sleep(30)
感谢大家,点赞,收藏,关注,评论!