王韦帆
摘要:随着信息化教学的广泛应用,特别是在计算机类的实训、实操课程讲授中,教师通常在教师机端和学生进行屏幕共享,同时还需在多种小软件间切换,方可实现在计算机上演示的同时,又在计算机上进行文字书写、绘制图形、屏幕录制等工作。因此,文章意在设计实现一种将图形绘制、文字标注、录屏、聚光灯等多种功能集于一身的,能显示于当前操作软件窗口之上的软件,命名为“电子白板”,辅助广大教师机房授课,大大提升机房教学效率及效果。
关键词:电子白板;图元;C++ Builder
中图分类号:TP311.1 文献标识码:A
文章编号:1009-3044(2022)05-0107-04
1引言
随着信息化教学的开展,多种辅助教学软件广泛应用于课堂。在计算机类的实训、实操课程讲授中,学生实时看到教师操作软件、编写程序,同时教师也能实时在计算机上进行文字书写、绘制图形等板书操作,对于知识点、操作点的教与学都很有好处。因此,教师在借助电子教室软件实现屏幕共享的同时,还需在画图、Word、PPT、录屏、截图等多个软件间切换,从而满足教学需求,优化教学效果。这种慢速切换不仅容易打断教师教学思路,也容易导致学生注意力分散,而且公共教学机房装有还原卡,每次上课都需重复安装多个辅助教学的小软件。因此,本文将设计一种将图形绘制、文字输入、录屏、聚光灯等常用教学功能集于一身的基于屏幕共享的辅助教学软件,便于广大教师机房授课,提升机房授课的教学效率和效果。本文后续将该软件称为“电子白板”。
2软件简介
2.1软件概述
电子白板作为教学演示工具,拥有简洁的操作界面,便捷的操作体验,改善了多种教学辅助软件间切换的拖沓。软件运行后,以当前桌面为背景(白板),以为用户提供最需要的功能为目的。用户可以在背景页面(白板页)上绘制图形,它支持画笔、线条、文字、圆(椭圆)、矩形等操作,另外还有录屏、放大镜、图章、遮屏、聚光灯、导入PPT等工具,并可在背景页和当前正在使用的顯示在底层的软件间自由切换,使得教学活动直观、形象。
2.2开发环境选择
电子白板用于Windows平台,采用Borland C++Builder 工具开发。Borland C++ Builder是由Borland公司发布的一种高性能的可视化集成开发工具,具有快速的可视化开发环境[1]。
利用该工具进行软件开发时,首先通过将控件(Component)拖拽到窗体(Form)上,然后通过定义它的属性,并设定它的外形,应用程序界面就能够简单快捷地被创建。C++ Builder中包含了一百多种全部封装了Windows公用特征,并具备了完全的可扩展性(包括全面支持ActiveX控件)的可重用控件,这些控件可用于设计界面和实现各种功能,降低编程工作量,简化界面设计过程[2]。且C++ Builder具备一个专业C++开发环境所能实现的所有功能(迅速、有效、灵活的编译器优化,逐步连接,CPU透视,以及命令行开发工具等)。它将可视化的编程环境和功能强大的编程语言(C++)完美融合,是简单易用的面向对象的开发工具[3]。
2.3电子白板软件的特点
1)体积小,集成了多种教学辅助功能:软件小巧(仅有5.98M),但集合了文字、图形、聚光灯、放大镜、遮屏、PPT插入等多种教学实用功能,是机房共享屏幕授课方式的好帮手。
2)集合PPT文档:在授课过程中,可将教师PPT讲义导入,并可在其中进行文字、绘图注释。
3)图形矢量化处理:该软件通过面向对象的编程技术实现了图形处理,所有对象都是完全独立的实体,同时具备颜色、形状、大小、位置等属性[3]。
4)可导出多种格式:电子白板完成编辑后,可导出为其他格式的文件(如PPT、DOC、PDF、BMP等),也可保存为自有格式文件,可作为课堂笔记和学生分享,也可方便下次重新打开编辑。
3软件的设计思路
3.1软件界面设计
电子白板的界面由两部分组成,第一部分是白板区(绘图区),第二部分是工具栏。白板区(绘图区)可以由当前桌面为背景,也可由导入的PPT文档为背景,绘图区基本占据整个屏幕,方便用户使用;工具栏在屏幕最右侧,其中包含切换、画笔、图形、文字、橡皮擦、录屏、放大镜等多种按钮及工具。软件界面布局如图1。软件运行界面如图2。
3.2软件功能实现
3.3技术实现
面向对象的编程方式,主要原则就是把所有有关数据和应用该数据的函数都封装为同一个类,用这些类能够简单地创建各类图元对象。该软件通过使用分类的方法把不同图元对象分别定义成不同类,然后向类中添加属性和方法,来响应用户的不同操作。图元属性则记录了该图元对象的所有数据信息,如纵横坐标、图元类型、颜色等。而图元方法则定义了该图元的所有行为信息,如绘图、移动等。同时通过定义通用类识别并管理以上定义的所有图元类对象,使之协同工作,实际就是一个个对象集合,每个集合对象都有各自的属性和方法。
开发电子白板,最基本的就是实现矢量图元,其具有以下功能:具备直线、圆、多边形、文字等图形元素;具备图形的缩放、移动、回溯等各种操作;具备颜色、线型等属性的设置等[4]。
本软件的实现,核心是先定义了一个图元基类,在此基础上再派生出一个个图元子类,完成多种图形的绘制,并对绘制后的图元数据进行处理。同时通过放大镜、录屏、遮屏、聚光灯等工具的配合,方便教学过程中的一些特别操作。
1)图元基类
通过对电子白板要实现的功能进行数据抽象,把各个组件的公有属性,如颜色、线宽、线型和选择等操作标志封装在一个基类TPicBase中,其余具体的图元类都由这个基类派生产生。所有派生类的成员都可以访问该基类中定义的属性和函数。通过这种定义方式,可以提高代码的重用性和安全性。
TComponent为所有组件的公共父类(该类由开发工具自带),TPicBase是TComponent的派生类,为后续定义的图元类的基类,并提供了在各个对象中进行操作的成员函数,也包含了在电子白板显示区进行操作的成员函数。通过调用由TPicBase类以及派生类所提供的成员函数,就能够实现绘图工具的应用、图形设备界面的选择以及颜色和调色板等各种操作。成员函数定义如下:
2)图元派生类
以矩形类TRectPic为例,该类除了具有其基类TPicBase中的共有属性和方法外,还包含起点坐标、终点坐标、是否填充、绘制、移动等属性和方法。矩形类的构造函数负责对矩形的其他属性进行初始化。
3)定义绘图区
用户在使用电子白板时,需要有一个固定区域进行文字或绘图,为此本软件定义了两种模式的绘图区:第一种是将当前桌面的内容作为绘图背景区,用户可在此随意编写文字、绘制图形;第二种是通过导入PPT文档,将其文档内容作为绘图背景区,这样可以针对某些固定内容进行一边讲义一边注释。
本软件支持增加多个绘图区(如通过新建操作或导入多页PPT文档),可通过上/下翻页进行绘图区的切换,解决用户在讲解多页PPT时来回切换的问题。
4)绘制图元
绘制图元前,首先要选定一个绘图区,并选择需要绘制的图元类别。
绘制图元的基本思路:根据鼠标左键的不同事件分别进行编程。首先,将鼠标左键按下时,通过设置参考点位置,触发所选定的图元类的相应事件,在绘图区上绘制出该图元的基本形状;其次,当鼠标移动时,先清除之前绘制的图元,然后再以当前鼠标的坐标点为参考位置重新绘制图元,并更新参考点坐标到当前位置;当鼠标左键弹起时,完成图元绘制,可以对其进行属性设置,如颜色、填充等操作[5]。
5)图元数据处理
图元绘制完毕后,每个图形元素都是图元类創建的一个对象,在创建这个对象时得到了这个对象的指针,然后建立一个对象指针数组来管理这些指针,以达到管理各个图元对象的目的,用TComponentList类创建一个管理类指针的对象:TComponentList* PicList[6]。
PicList会将已经绘制的图元对象进行添加,当图形重新加载时,可以根据这些数据准确重新恢复绘制的图形。同时,图形中各个图元对象拥有自己的图元信息,用户可以对其进行分别选定及操作(也可将绘图区与所绘制的所有图元数据单独存成自有格式,这样下次打开时,还可以对该文件重新进行编辑)。
增加一个图元对象时,需要进行两个步骤的操作:首先需要创建一个图元对象,并用图元的实际参数初始化这个图元对象;其次需要把指向新创建的图元对象的指针,增加到PicList中。
6)其他工具的设计
针对其他工具,我将以聚光灯为例(聚光灯的功能:实现某一部分区域是看得见的,其他区域是被遮挡的,高亮区域的大小可变,位置可变),说明其设计方法:在绘图区的顶层,增加一个窗体作为聚光灯窗体,将该窗体最大化,背景色设置为灰色(颜色可随意),设置其透明度为半透明,在其中画上圆形(可切换为正方形或三角形)作为高亮区域,并对其进行透明处理,这样就可以看到绘图区的图像了,鼠标左键选择透明圆形,并对其进行移动,随着移动,底部看到的区域也是变化的,鼠标松开后,透明区域会在新的位置。事件主要就是处理鼠标的事件,如下:
4软件应用
以该软件在《3Ds Max技术基础》机房实训课程中的应用为例,教师在实时共享主机屏幕的同时,利用电子白板软件实现了3Ds Max软件操作界面(如图3)与白板页面间的切换。
学生可以一边观看屏幕上教师实时的3D建模操作,一边看到教师以当前电脑桌面或以PPT课件为白板页,进行圈圈画画、文字注释,如图4。同时根据教学需求,还可使用放大镜、聚光灯等工具,从而巧妙地将屏幕与传统黑板在电脑屏幕上合二为一,实现了教师在电脑屏幕上进行板书操作,突出教学任务,提升了教学效率与效果。聚光灯工具使用,如图5。放大镜工具使用,如图6。
5结束语
基于屏幕共享的电子白板软件设计实现后,已经在学院多名机房授课教师讲课的过程中实际应用。该软件小巧、易操作,功能实用,不仅可以在白板区域进行多种方式的注解和标识,且灵活在白板页和软件操作页面间切换,方便课堂演示讲解,使得授课过程的多环节贯通流畅。同时,极大节省了在公共机房课前及课中重启计算机后安装小软件的时间,是实际教学的好助手。
参考文献:
[1] 刘光.C++ Builder程序设计导学[M].北京:清华大学出版社,2002.
[2] 梁忠,吉伟明.计算机信息系统开发在学籍管理系统中的应用[J].福建电脑,2010,26(3):149-150.
[3] 闵辉.基于C++ Builder6.0的《C++程序设计》教学知识点演示系统研究与运用[J].家教世界,2013(2):233-234.
[4] 钱伟.Photoshop平面图像处理实例教程[M].北京:北京理工大学出版社,2013.
[5] 邵笔贵,袁荣湘,张海梁,等.面向对象的图形化故障计算软件的开发[J].广西电力,2005,28(1):13-17.
[6] 吴俊锋,刘韵,蔡蓊蔚.基于面向对象技术的基本绘图平台的设计[J].指挥信息系统与技术,2010,1(2):56-60.
【通联编辑:谢媛媛】