这是我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() # 刷新显示
发表评论