在PyCharm中运行《超级画板》即可进入如图1所示的系统主界面。在该界面中,通过左侧的工具栏可以选择所要进行的操作。
具体的操作步骤如下:
超级画板的主要功能都集中在一个窗口上实现,在这个窗口中,默认选择的是画笔,用户在设置画笔颜色和尺寸时,可以在窗口左侧的矩形框中显示预览效果,选择完成后,即可在右侧画板中绘制图形;而如果选择橡皮,则可以擦除已经绘制的图形,另外,还可以按键盘上的Esc键盘,清空右侧的画板,效果如图2所示。
部分源码如下,其余完整详见下载。
class Brush:
"""
画笔类
"""
def __init__(self, screen):
self.screen = screen # 屏幕对象
self.color = (0, 0, 0) # 颜色
self.size = 1 # 大小
self.drawing = False # 是否绘画
self.last_pos = None # 鼠标滑过最后的位置
self.space = 1
self.brush = pygame.image.load("img/pen.png").convert_alpha() # 画笔图片
self.brush_now = self.brush.subsurface((0, 0), (1, 1)) # 初始化画笔对象
# 开始绘画
def start_draw(self, pos):
self.drawing = True
self.last_pos = pos # 记录鼠标最后位置
# 结束绘画
def end_draw(self):
self.drawing = False
# 获取当前使用画笔
def get_current_brush(self):
return self.brush_now # 获取当前使用的画笔对象
def set_size(self, size): # 设置画笔大小
if size < 0.5: # 判断画笔尺寸小于0.5
size = 0.5 # 设置画笔最小尺寸为0.5
elif size > 32: # 判断画笔尺寸大于32
size = 32 # 设置画笔最大尺寸为32
self.size = size # 设置画笔尺寸
# 生成画笔对象
self.brush_now = self.brush.subsurface((0, 0), (size * 2, size * 2))
# 获取画笔大小
def get_size(self):
return self.size
# 设置画笔颜色
def set_color(self, color):
self.color = color # 记录选择的颜色
for i in range(self.brush.get_width()): # 获取画笔的宽度
for j in range(self.brush.get_height()): #获取画笔的高度
# 以指定颜色显示画笔
self.brush.set_at((i, j), color + (self.brush.get_at((i, j)).a,))
# 获取画笔颜色
def get_color(self):
return self.color
# 绘制动作
def draw(self, pos):
if self.drawing: # 判断是否开始绘画
for p in self._get_points(pos):
# 在两点之间的每个点上都画上实心点
pygame.draw.circle(self.screen, self.color, p, int(self.size))
self.last_pos = pos # 记录画笔最后位置
# 获取两点之间所有的点位,该函数通过对鼠标坐标前一次记录点与当前记录点之间进行线性插值
# 从而获得一系列点的坐标,从而使得绘制出来的画笔痕迹更加平滑自然
def _get_points(self, pos):
points = [(self.last_pos[0], self.last_pos[1])]
len_x = pos[0] - self.last_pos[0]
len_y = pos[1] - self.last_pos[1]
length = math.sqrt(len_x ** 2 + len_y ** 2)
step_x = len_x / length
step_y = len_y / length
for i in range(int(length)):
points.append(
(points[-1][0] + step_x, points[-1][1] + step_y))
# 对 points 中的点坐标进行四舍五入取整
points = map(lambda x: (int(0.5 + x[0]), int(0.5 + x[1])), points)
return list(set(points)) # 去除坐标相同的点
Windows系统自带的画图板简单灵巧,深得Windows用户的喜爱,其占用资源少、操作简单、功能齐全等特点为用户的小型图形开发工作带来了很多便利。为此,也出现了很多利用VC等可视化开发工具开发的模仿Windows的画图板。本章完全利用C语言开发了一个画图板,该画图板具有画图、调整图形大小与方位、保存与打开文件等基本的画图板功能。
《几何画板》软件是由美国Key Curriculum Press公司制作并出版的优秀教育软件,1996年该公司授权人民教育出版社在中国发行该软件的中文版。正如其名“21世纪动态几何”,它能够动态地展现出几何对象的位置关系、运行变化规律,是数学与物理教师制作课件的工具。
“几何画板”是一个作图和实现动画的辅助教学软件,用户可以根据教学需要编制出相关的图像和动画过程,其特点是操作简单,界面简洁,可以精确度量长度和角度等,而且在演示过程中可以实时调节图像。