2022寒假7天课之模拟简易CAD制图课程源代码

2022寒假7天课之模拟简易CAD制图课程源代码

Python简易CAD制图程序演示gif李兴球
这是我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()                   # 刷新显示

    
李兴球

李兴球的博客是Python创意编程原创博客