赞
踩
运行效果:
完整代码如下:
import turtle import random from turtle import * from time import sleep # 画樱花的躯干(60,t) def tree(branchLen,t): sleep(0.0005) if branchLen >3: if 8<= branchLen <=12: if random.randint(0,2) == 0: t.color('snow') # 白 else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branchLen / 3) elif branchLen <8: if random.randint(0,1) == 0: t.color('snow') else: t.color('lightcoral') # 淡珊瑚色 t.pensize(branchLen / 2) else: t.color('sienna') # 赭(zhě)色 t.pensize(branchLen / 10) # 6 t.forward(branchLen) a = 1.5 * random.random() t.right(20*a) b = 1.5 * random.random() tree(branchLen-10*b, t) t.left(40*a) tree(branchLen-10*b, t) t.right(20*a) t.up() t.backward(branchLen) t.down() # 掉落的花瓣 def petal(m, t): for i in range(m): a = 200 - 400 * random.random() b = 10 - 20 * random.random() t.up() t.forward(b) t.left(90) t.forward(a) t.down() t.color('lightcoral') # 淡珊瑚色 t.circle(1) t.up() t.backward(a) t.right(90) t.backward(b) def main(): # 绘图区域 t = turtle.Turtle() # 画布大小 w = turtle.Screen() t.hideturtle() # 隐藏画笔 getscreen().tracer(1,0) w.screensize(bg='wheat') t.left(90) t.up() t.backward(150) t.down() t.color('sienna') # 画樱花的躯干 tree(60,t) # 掉落的花瓣 petal(200, t) w.exitonclick() main()
运行效果:
完整代码如下:
from turtle import * #扁嘴 pensize(2) pu() goto(-100,100)#上嘴最高顶点 seth(-50) pd() color('#6C3100','#FADD77') begin_fill() fd(16) vertex_right = pos()#嘴最右顶点 rt(50) fd(12) vertex_down = pos()#下嘴最低顶点 rt(80) fd(30) circle(-3,200) vertex_left = pos()#嘴最左顶点 goto(-100,100) end_fill() goto(vertex_left)#回到最左顶点 circle(-3,-200)#扁嘴 goto(vertex_right) #身体 #头颈背尾曲线 color('#B6A88E') pu() goto(-100,100) pd() seth(80) circle(-36,160) fd(25) circle(115,20) circle(60,55) circle(-200,20) circle(110,20) color('#7D6A4C') circle(40,40) color('#B6A88E') seth(-100) circle(-180,30) circle(-20,50) #右鸭腿 circle(20,70) color('#736856') circle(-12,120) leg_pos1 = pos()#定位左腿位置 fd(25) #前胸肚曲线 pu() goto(vertex_down) pd() seth(-10) color('#B9AD9D') circle(-40,50) circle(-80,48) color('#736856') circle(250,5) circle(50,75) color('#B9AD9D') circle(220,28) #左鸭腿 pu() seth(175) fd(40) pd() seth(-120) fd(8) circle(-10,120) leg_pos2 = pos()#定位右腿位置 fd(15) #眼睛 color('black') #左眼 pu() goto(vertex_down - (1,-29)) pd() dot(4,'black') #右眼 pu() goto(vertex_down + (23,20)) pd() dot(4,'black') #翅膀 color('#BCB2A6') pu() goto(vertex_down - (-75,130)) seth(130) pd() circle(-25,130) circle(-100,30) fd(85) point = pos() rt(137) fd(52) circle(-100,58) pu() goto(point) lt(30) pd() fd(60) pu() goto(point) pd() lt(10) fd(70) #腿部 #左腿 def leg(pos0):#鸭腿绘制函数 pensize(8) color('#ECC578') pu() goto(pos0) seth(0) fd(7) seth(-90) fd(8.5) pd() fd(20)#腿长 leg(leg_pos1) leg(leg_pos2) #小红靴——函数 def boot(pos0): pensize(2) color('#B4070B','#FBA06B') pu() goto(pos0)#靴子右上顶点 pd() begin_fill() seth(140) circle(25,80) seth(-80) fd(35) circle(-2,60)#靴低 fd(20) circle(4,180) seth(5) fd(30) circle(2,60) goto(pos0)#右侧线条 end_fill() boot(leg_pos1-(-20,30)) boot(leg_pos2-(-20,30)) #小雨滴 color('#77DDFF','#D8E8E5') fd_ls = [200,140,250,240,230,220,180,250] lt_ls = [30,60,60,100,125,170,200,330] for i in range(8): pu() home() lt(lt_ls[i]) fd(fd_ls[i]) pd() seth(-78) fd(15) begin_fill() circle(-3,200) end_fill() fd(15) #文字 pu() goto(vertex_left) seth(180) fd(150) seth(-90) fd(300) color('black') write('呆萌小鸭子',font=("Arial",15,"normal")) hideturtle() done()
运行效果:
完整代码如下:
import tkinter as tk class Calc(tk.Tk): """计算器窗体类""" def __init__(self): """初始化实例""" tk.Tk.__init__(self) self.title("计算器") self.memory = 0 # 暂存数值 self.create() def create(self): """创建界面""" btn_list = ["C", "M->", "->M", "/", "7", "8", "9", "*", "4", "5", "6", "-", "1", "2", "3", "+", "+/-", "0", ".", "="] r = 1 c = 0 for b in btn_list: self.button = tk.Button(self, text=b, width=5, command=(lambda x=b: self.click(x))) self.button.grid(row=r, column=c, padx=3, pady=6) c += 1 if c > 3: c = 0 r += 1 self.entry = tk.Entry(self, width=24, borderwidth=2, bg="yellow", font=("Consolas", 12)) self.entry.grid(row=0, column=0, columnspan=4, padx=8, pady=6) def click(self, key): """响应按钮""" if key == "=": # 输出结果 result = eval(self.entry.get()) self.entry.insert(tk.END, " = " + str(result)) elif key == "C": # 清空输入框 self.entry.delete(0, tk.END) elif key == "->M": # 存入数值 self.memory = self.entry.get() if "=" in self.memory: ix = self.memory.find("=") self.memory = self.memory[ix + 2:] self.title("M=" + self.memory) elif key == "M->": # 取出数值 if self.memory: self.entry.insert(tk.END, self.memory) elif key == "+/-": # 正负翻转 if "=" in self.entry.get(): self.entry.delete(0, tk.END) elif self.entry.get()[0] == "-": self.entry.delete(0) else: self.entry.insert(0, "-") else: # 其他键 if "=" in self.entry.get(): self.entry.delete(0, tk.END) self.entry.insert(tk.END, key) if __name__ == "__main__": Calc().mainloop()
运行效果:
完整代码如下:
from turtle import * ''' 绘制皮卡丘头部 ''' def face(x,y): """画脸""" begin_fill() penup() # 将海龟移动到指定的坐标 goto(x, y) pendown() # 设置海龟的方向 setheading(40) circle(-150, 69) fillcolor("#FBD624") # 将海龟移动到指定的坐标 penup() goto(53.14, 113.29) pendown() setheading(300) circle(-150, 30) setheading(295) circle(-140, 20) print(position()) forward(5) setheading(260) circle(-80, 70) print(position()) penup() goto(-74.43,-79.09) pendown() penup() # 将海龟移动到指定的坐标 goto(-144,103) pendown() setheading(242) circle(110, 35) right(10) forward(10) setheading(250) circle(80, 115) print(position()) penup() goto(-74.43,-79.09) pendown() setheading(10) penup() goto(-144, 103) pendown() penup() goto(x, y) pendown() end_fill() # 下巴 penup() goto(-50, -82.09) pendown() pencolor("#DDA120") fillcolor("#DDA120") begin_fill() setheading(-12) circle(120, 25) setheading(-145) forward(30) setheading(180) circle(-20, 20) setheading(143) forward(30) end_fill() def eye(): """画眼睛""" # 左眼 color("black","black") penup() goto(-110, 27) pendown() begin_fill() setheading(0) circle(24) end_fill() # 左眼仁 color("white", "white") penup() goto(-105, 51) pendown() begin_fill() setheading(0) circle(10) end_fill() # 右眼 color("black", "black") penup() goto(25, 40) pendown() begin_fill() setheading(0) circle(24) end_fill() # 右眼仁 color("white", "white") penup() goto(17, 62) pendown() begin_fill() setheading(0) circle(10) end_fill() def cheek(): """画脸颊""" # 右边 color("#9E4406", "#FE2C21") penup() goto(-130, -50) pendown() begin_fill() setheading(0) circle(27) end_fill() # 左边 color("#9E4406", "#FE2C21") penup() goto(53, -20) pendown() begin_fill() setheading(0) circle(27) end_fill() def nose(): """画鼻子""" color("black", "black") penup() goto(-40, 38) pendown() begin_fill() circle(7,steps = 3) end_fill() def mouth(): """画嘴""" color("black", "#F35590") # 嘴唇 penup() goto(-10, 22) pendown() begin_fill() setheading(260) forward(60) circle(-11, 150) forward(55) print(position()) penup() goto(-38.46, 21.97) pendown() end_fill() # 舌头 color("#6A070D", "#6A070D") begin_fill() penup() goto(-10.00, 22.00) pendown() penup() goto(-14.29, -1.7) pendown() penup() goto(-52, -5) pendown() penup() goto(-60.40, 12.74) pendown() penup() goto(-38.46, 21.97) pendown() penup() goto(-10.00, 22.00) pendown() end_fill() color("black","#FFD624") penup() goto(-78, 15) pendown() begin_fill() setheading(-25) for i in range(2): setheading(-25) circle(35, 70) end_fill() color("#AB1945", "#AB1945") penup() goto(-52, -5) pendown() begin_fill() setheading(40) circle(-33, 70) goto(-16,-1.7) penup() goto(-18,-17) pendown() setheading(155) circle(25, 70) end_fill() def ear(): """画耳朵""" # 左耳 color("black","#FFD624") penup() goto(-145, 93) pendown() begin_fill() setheading(165) circle(-248,50) right(120) circle(-248,50) end_fill() color("black", "black") penup() goto(-240, 143) pendown() begin_fill() setheading(107) circle(-170, 25) left(80) circle(229, 15) left(120) circle(300, 15) end_fill() # 右耳 color("black", "#FFD624") penup() goto(30, 136) pendown() begin_fill() setheading(64) circle(-248, 50) right(120) circle(-248, 50) end_fill() color("black", "black") penup() goto(160, 200) pendown() begin_fill() setheading(52) circle(170, 25) left(116) circle(229, 15) left(71) circle(-300, 15) end_fill() def setting(): """设置参数""" pensize(2) # 隐藏海龟 hideturtle() speed(10) def main(): """主函数""" setting() face(-132,115) eye() cheek() nose() mouth() ear() done() if __name__ == '__main__': main()
运行效果:
完整代码如下:
import turtle import time # 清屏函数 def clear_all(): turtle.penup() turtle.goto(0, 0) turtle.color('white') turtle.pensize(800) turtle.pendown() turtle.setheading(0) turtle.fd(300) turtle.bk(600) # 重定位海龟的位置 def go_to(x, y, state): turtle.pendown() if state else turtle.penup() turtle.goto(x, y) # 画线 # state为真时海龟回到原点,为假时不回到原来的出发点 def draw_line(length, angle, state): turtle.pensize(1) turtle.pendown() turtle.setheading(angle) turtle.fd(length) turtle.bk(length) if state else turtle.penup() turtle.penup() # 画箭羽 def draw_feather(size): angle = 30 # 箭的倾角 feather_num = size//6 # 羽毛的数量 feather_length = size // 3 # 羽毛的长度 feather_gap = size//10 # 羽毛的间隔 for i in range(feather_num): draw_line(feather_gap, angle+180, False) # 箭柄,不折返 draw_line(feather_length, angle + 145, True) # 羽翼,要折返 draw_line(feather_length, angle + 145, False) draw_line(feather_num*feather_gap, angle, False) draw_line(feather_length, angle + 145 + 180, False) for i in range(feather_num): draw_line(feather_gap, angle+180, False) # 箭柄,不折返 draw_line(feather_length, angle - 145, True) # 羽翼,要折返 draw_line(feather_length, angle - 145, False) draw_line(feather_num*feather_gap, angle, False) draw_line(feather_length, angle - 145 + 180, False) # 画爱心 def draw_heart(size): turtle.color('red', 'pink') turtle.pensize(2) turtle.pendown() turtle.setheading(150) turtle.begin_fill() turtle.fd(size) turtle.circle(size * -3.745, 45) turtle.circle(size * -1.431, 165) turtle.left(120) turtle.circle(size * -1.431, 165) turtle.circle(size * -3.745, 45) turtle.fd(size) turtle.end_fill() # 画箭 def draw_arrow(size): angle = 30 turtle.color('black') draw_feather(size) turtle.pensize(4) turtle.setheading(angle) turtle.pendown() turtle.fd(size*2) # 一箭穿心 # 箭的头没有画出来,而是用海龟来代替 def arrow_heart(x, y, size): go_to(x, y, False) draw_heart(size*1.15) turtle.setheading(-150) turtle.penup() turtle.fd(size*2.2) draw_heart(size) turtle.penup() turtle.setheading(150) turtle.fd(size * 2.2) draw_arrow(size) # 画出发射爱心的小人 def draw_people(x, y): turtle.penup() turtle.goto(x, y) turtle.pendown() turtle.pensize(2) turtle.color('black') turtle.setheading(0) turtle.circle(60, 360) turtle.penup() turtle.setheading(90) turtle.fd(75) turtle.setheading(180) turtle.fd(20) turtle.pensize(4) turtle.pendown() turtle.circle(2, 360) turtle.setheading(0) turtle.penup() turtle.fd(40) turtle.pensize(4) turtle.pendown() turtle.circle(-2, 360) turtle.penup() turtle.goto(x, y) turtle.setheading(-90) turtle.pendown() turtle.fd(20) turtle.setheading(0) turtle.fd(35) turtle.setheading(60) turtle.fd(10) turtle.penup() turtle.goto(x, y) turtle.setheading(-90) turtle.pendown() turtle.fd(40) turtle.setheading(0) turtle.fd(35) turtle.setheading(-60) turtle.fd(10) turtle.penup() turtle.goto(x, y) turtle.setheading(-90) turtle.pendown() turtle.fd(60) turtle.setheading(-135) turtle.fd(60) turtle.bk(60) turtle.setheading(-45) turtle.fd(30) turtle.setheading(-135) turtle.fd(35) turtle.penup() # 第一个画面,显示文字 def page0(): turtle.penup() turtle.goto(-350, 0) turtle.color('black') turtle.write('专属于我们的什么节', font=('宋体', 60, 'normal')) #这里的字大家自己替换 time.sleep(3) # 第二个画面,显示发射爱心的小人 def page1(): turtle.speed(10) draw_people(-250, 20) turtle.penup() turtle.goto(-150, -30) draw_heart(14) turtle.penup() turtle.goto(-20, -60) draw_heart(25) turtle.penup() turtle.goto(250, -100) draw_heart(45) turtle.hideturtle() time.sleep(3) # 最后一个画面,一箭穿心 def page2(): turtle.speed(1) turtle.penup() turtle.goto(-200, -200) turtle.color('blue') turtle.pendown() turtle.write('温轻舟 温轻舟', font=('wisdom', 25, 'normal')) #这里的字大家自己替换 turtle.penup() turtle.goto(0, -180) draw_heart(10) arrow_heart(20, -60, 51) turtle.showturtle() def main(): turtle.setup(900, 500) page0() clear_all() page1() clear_all() page2() turtle.done() main()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。