💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
``` #!/usr/bin/python # -*- coding=UTF-8 -*- from Tkinter import * #画图 #画布的标题,必须在创建画布的前面执行,不然会出现两个画布 root = Tk() root.title('Canvas Test') #画布宽,高,背景颜色 canvas = Canvas(width = 800, height = 600, bg = 'yellow') canvas.pack(expand=YES, fill=BOTH) #画圆 k = 1 j = 1 for i in range(0, 26): #画圆,x,y轴,圆心半径,线宽度??? canvas.create_oval(310 - k, 250 - k, 310 + k, 250 + k, width = 1) k += j j += 0.3 #画线 line_x0 = 200 line_y0 = 200 line_x1 = 200 line_y1 = 300 for i in range(20): #起点x,y轴,终点x,y轴,线条颜色 canvas.create_line(line_x0, line_y0, line_x1, line_y1, fill = 'red') line_x0 += 5 line_y0 += 5 line_y1 += 5 #画矩形 rect_x0 = 350 rect_y0 = 350 rect_x1 = 500 rect_y1 = 500 for i in range(20): #起点x,y轴,对角的点的x,y轴坐标 canvas.create_rectangle(rect_x0, rect_y0, rect_x1, rect_y1) rect_x0 -= 5 rect_y0 -= 5 rect_x1 += 5 rect_y1 += 5 #画国徽 x0 = 150 y0 = 100 canvas.create_oval(x0 - 10,y0 - 10,x0 + 10,y0 + 10) canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20) canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50) import math import math B = 0.809 for i in range(16): a = 2 * math.pi / 16 * i x = math.ceil(x0 + 48 * math.cos(a)) y = math.ceil(y0 + 48 * math.sin(a) * B) canvas.create_line(x0,y0,x,y,fill = 'red') canvas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60) for k in range(501): for i in range(17): a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k x = math.ceil(x0 + 48 * math.cos(a)) y = math.ceil(y0 + 48 + math.sin(a) * B) canvas.create_line(x0,y0,x,y,fill = 'red') for j in range(51): a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1 x = math.ceil(x0 + 48 * math.cos(a)) y = math.ceil(y0 + 48 * math.sin(a) * B) canvas.create_line(x0,y0,x,y,fill = 'red') mainloop() ``` | 实例二 | | | --- | --- | ``` #!/usr/bin/python # -*- coding=UTF-8 -*- import math class PTS: def __init__(self): self.x = 0 self.y = 0 points = [] def LineToDemo(): from Tkinter import * screenx = 400 # 宽 screeny = 400 # 高 canvas = Canvas(width = screenx,height = screeny,bg = 'white') AspectRatio = 0.85 MAXPTS = 15 h = screeny w = screenx xcenter = w / 2 ycenter = h / 2 radius = (h - 30) / (AspectRatio * 2) - 20 step = 360 / MAXPTS angle = 0.0 for i in range(MAXPTS): rads = angle * math.pi / 180.0 p = PTS() p.x = xcenter + int(math.cos(rads) * radius) p.y = ycenter - int(math.sin(rads) * radius * AspectRatio) angle += step points.append(p) canvas.create_oval(xcenter - radius,ycenter - radius, xcenter + radius,ycenter + radius) for i in range(MAXPTS): for j in range(i,MAXPTS): canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y) canvas.pack() mainloop() if __name__ == '__main__': LineToDemo() ```