用户:姚国栋udn0查看:0 回复:1 评论:0 创建时间:2024-01-24T22:12:37
【作品展示】

【作品介绍】
高级绘图软件
【作品源代码】
import tkinter as tk
import turtle
from tkinter import colorchooser
from tkinter import simpledialog
def set_pen_size():
size = simpledialog.askinteger("Pen Size", "Enter pen size:")
t.pensize(size)
def choose_color():
color = colorchooser.askcolor()
t.pencolor(color[1])
def draw_line():
t.ondrag(None)
t.pendown()
x, y = t.position()
new_x, new_y = simpledialog.askinteger("Draw Line", "Enter ending coordinates (x y):", initialvalue=(x, y))
t.goto(new_x, new_y)
t.ondrag(t.drag)
def draw_curve():
t.ondrag(None)
t.pendown()
x, y = t.position()
new_x, new_y = simpledialog.askinteger("Draw Curve", "Enter control point coordinates (x y):", initialvalue=(x + 50, y + 50))
t.goto(new_x, new_y)
t.ondrag(t.drag)
def draw_triangle():
t.ondrag(None)
t.setheading(0)
t.penup()
x, y = t.position()
t.goto(x + 50, y)
t.pendown()
for _ in range(3):
t.forward(100)
t.right(120)
def draw_rectangle():
t.ondrag(None)
t.setheading(0)
t.penup()
x, y = t.position()
t.goto(x + 50, y)
t.pendown()
for _ in range(2):
t.forward(100)
t.right(90)
t.forward(50)
t.right(90)
def draw_circle():
t.ondrag(None)
t.penup()
x, y = t.position()
t.goto(x + 50, y - 50)
t.pendown()
t.circle(50)
def draw_ellipse():
t.ondrag(None)
t.penup()
x, y = t.position()
t.goto(x + 50, y)
t.pendown()
t.setheading(0)
t.right(45)
for _ in range(2):
t.circle(50, 90)
t.circle(20, 90)
root = tk.Tk()
root.title("Advanced Drawing Program")
root.geometry("800x800")
canvas = turtle.ScrolledCanvas(root)
canvas.pack()
t = turtle.RawTurtle(canvas)
menu_bar = tk.Menu(root)
root.config(menu=menu_bar)
file_menu = tk.Menu(menu_bar, tearoff=False)
menu_bar.add_cascade(label="File", menu=file_menu)
shapes_menu = tk.Menu(menu_bar, tearoff=False)
menu_bar.add_cascade(label="Shapes", menu=shapes_menu)
shapes_menu.add_command(label="Draw Triangle", command=draw_triangle)
shapes_menu.add_command(label="Draw Rectangle", command=draw_rectangle)
shapes_menu.add_command(label="Draw Circle", command=draw_circle)
shapes_menu.add_command(label="Draw Ellipse", command=draw_ellipse)
options_menu = tk.Menu(menu_bar, tearoff=False)
menu_bar.add_cascade(label="Options", menu=options_menu)
options_menu.add_command(label="Set Pen Size", command=set_pen_size)
options_menu.add_command(label="Choose Color", command=choose_color)
options_menu.add_command(label="Draw Line", command=draw_line)
options_menu.add_command(label="Draw Curve", command=draw_curve)
root.mainloop()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn