import math from time import sleep import tkinter as tk root = tk.Tk() def Y_pattern(): canvas.delete("all") # 清除画布 canvas.create_line(20, 30, 80, 90, fill='red', width=2) # 左臂 canvas.create_line(140, 30, 80, 90, fill='red', width=2) # 右臂 canvas.create_line(80, 160, 80, 90, fill='red', width=2) # 中心线 def Y_tree(depth, percent, left_angle, right_angle, start_point, angle, length, canvas): if depth == 0: return end_point = (start_point[0] + length * math.cos(math.radians(angle)), start_point[1] - length * math.sin(math.radians(angle))) canvas.create_line(start_point, end_point, width=2) Y_tree(depth - 1, percent, left_angle, right_angle, end_point, angle + right_angle, length * percent, canvas) # 画右枝 Y_tree(depth - 1, percent, left_angle, right_angle, end_point, angle - left_angle, length * percent, canvas) # 画左枝 canvas.update() sleep(0.001) if __name__ == '__main__': canvas = tk.Canvas(root, width=1200, height=1000) canvas.pack() finishLevel = 10 treePercent = 0.7 leftAngle = 60 rightAngle = 60 initPoint = (520, 600) initAngle = 90 initLong = 160 Y_tree(finishLevel, treePercent, leftAngle,rightAngle,initPoint,initAngle,initLong,canvas)