
这是我2022年寒假课上的Python课程的一个源代码。用Python制作一个简单的CAD制图软件。以下是第四个版本的源代码。
"""
简易CAD制图程序.py
"""
from sprites import Sprite,Mouse,Key,showinfo,mouse_pos
d = Sprite(visible=False,shape='blank') # 打算用于绘制青色线条的角色
d.color('cyan') # 颜色是青色的
bug = Sprite(shape='blank',visible=False)
bug.color('white')
screen = bug.getscreen() # 获取屏幕对象
screen.bgcolor('black') # 背景颜色设为黑
screen.setup(800,600) # 宽度高度为800X600
m1 = Mouse() # 新建鼠标左键
m3 = Mouse(3) # 新建鼠标右键
space = Key("space") # 新建空格按键
screen.listen()
x0,y0 = None,None # 保存上一次单击的坐标
while True:
mx,my = mouse_pos() # 实时地获取鼠标指针坐标
screen.title(str(mx) + "," + str(my))
# 下面的if语句不断地让d这个角色画从上一个点到鼠标点画青色的线条
if x0!=None and y0!=None:# 如果不是第一次单击(这个时候x0,y0都有值了)
d.clear()
d.goto(x0,y0) # 到达上一次单击的点
d.pendown() # 落笔
d.goto(mx,my) # 到达鼠标指针的位置
d.penup()
if m1.downup(): # 如果左键按下并松开
bug.goto(m1.pos) # bug到达单击的位置
x0,y0 = m1.pos # 保留上一次单击的坐标
bug.dot(3,'red')
if not bug.isdown(): # 如果没有落笔
bug.pendown() # 则落笔
if m3.downup(): # 如果鼠标右键按下并松开
bug.penup() # bug抬笔
x0,y0 = None,None # x0,y0恢复空值
d.clear() # 清空d所画的线条
if space.downup(): # 如果按下并松开空格键
screen.save('abcd.png') # 截图保存到文件'abcd.png'
showinfo('恭喜','保存成功') # 显示保存成功的对话框
screen.update() # 刷新显示
