基于c#及flash技术的儿童画图软件的设计与实现
摘 要:C#是功能强大的编程语言,Flash 是矢量动画制作的佼佼者,儿童是祖国的未来,如何将C#与flash结合起来设计出适合孩子们使用的画图软件,这个问题是值得我们探讨的。
关键词:C# flash ;儿童; 画图软件; 设计 ; 实现
引言
父母或教师若想引导孩子走进美术世界,给幼儿美术教育一个好起点,就必须能充分了解孩子与生俱来的种种本能,为孩子选择好的启蒙工具。随前计算机的普及,画图软件是一个不错的选择。如何设计与实现适用于儿童的画图软件呢?这是本文研究与讨论的问题。
1.画图软件现状与未来发展趋势分析
1.1儿童画图软件的现状
(1) 儿童画图软件以游戏软件居多,主要针对学前儿童(儿童从3周岁到6~7周岁这一年龄阶段称为学前儿童)使用,要求操作者有较强的鼠标控制能力。
(2) 软件主要使用flash设计与制作,规模较小,功能较为单一,主要体现为上色、描线或绘画。
2.儿童画图软件的发展方向
2.1使用者范围扩大
随着电脑的普及,多媒体幼儿教育的广泛使用,儿童画图软件将广泛应用于家庭及学校教育,使用者的年龄跨度也将扩大整个儿童时期(儿童时期一般是指从出生到15周岁)。
(1) 软件的功能更齐全,操作更简单,软件专业性与趣味性将有机的结合
随着使用者多年龄段的出现,软件将不仅仅包括上色、描线或绘画等单一功能,还将包括幼儿期(儿童从1~3周岁末的这个时期称为幼儿期)的启蒙教育以及学龄期(儿童从6~7周岁到15周岁这一年龄阶段称为学龄期)的创造力培养。
(2) 软件设计技术更专业化,更多样化
当软件市场的需求量增大,则必然会引起更多专业人士关注,从而使技术更加专业化,更加多样化。
2.2软件设计
此软件专为两岁以上儿童进行美术学习而设计的自由画图软件。如图1所示,它有简单、容易使用的界面,有趣的音效。软件分为“认知”与“绘图”两大功能模块。
“认知”功能通过点击界面中的“认知”按钮进入,由颜色认知、图形认知与图像认知三个部分组成。这一模块由Flash 技术实现,主要针对幼儿设计,以培养幼儿的感官能力为主,让孩子多听、多看、多记,强化幼儿的形象记忆。
“绘图”功能包括新建,保存,打印,绘画,变形,形状,文本,奇特效果,重复与撤消功能,主要由C#编写而成,能够实现自由画图,图形组合,图形图像变形,图形图像特效处理,以培养孩子的创造想象能力为主。
3.软件实现
3.1基于C#+VS2008技术的软件基本功能的实现
C# 是随.NET Framework 一起发布的一种新语言,是一种崭新的面向对象的编程语言,强调以组件为基础的软件开发方法。在VS2008开发平台上,利用C#组件特性较轻松地完成软件操作界面的设计及软件基本功能的实现,本软件中主要使用的组件及其实现功能如表1所示:
表1
3.2基于Flash技术的“认知模块”功能的实现
(1) 认知功能模块使用Flash设计的原因
第一、此功能模块主要是动画与小游戏;
第二、Flash技术有着动画、游戏制作特有优点: Flash动画储存容量小,可以通过为Flash动画添加动作脚本使其具有交互性,从而让观众成为动画的一部分。
(2) 通过动作脚本实现交互动画
在认知模块中为了提高使用者的积极性,大量的使用了交互技术。交互动画是通过动作脚本(ActionScript)语言设置动作来产生的。ActionScript是面向对象的脚本程序语言,在Flash 8中,将ActionScript代码添加到关键帧(Keyframe)、按钮(Button)或影片剪辑(Movie Clips)中就可以实现动画的交互效果。
(3)flash动画播放技术
C#是不直接支持flash文件格式的,需采用ActiveX控件方式播放。在工具箱中单击鼠标右键,在弹出的菜单中选择“选择项”命令,弹出“选择工具箱项”对话框,然后单出“COM组件”,选择shockwave Flash Object,在“认知”播放按钮添加如下代码:
= me;
();
3.3基于GDI+技术的“绘图模块“功能的实现
GDI+指的是.NET Framework3.5 中提供二维图形,图像功能,是构成Windows操作系统的一个子系统,它提供了包括位图、画笔、画刷、颜色、坐标空间和坐标变换、填充形状、线条和曲线、文本与字体等多种图形图像技术。利用GDI+技术中的pen对象可实现绘图功能,利用Brush对象可实现形状功能,利用DrawImage()可实现图像的倾斜,利用DrawImage()和ScaleTrasform()可实现图像的缩放。
4. 基于数学运算的特效功能的实现
软件的特效部分是一个非常能发挥孩子们“天马行空”特性的部分,在许多特效的编程中都深深地烙下了数学运算的印迹。例如,用像素加法运算实现两图像合成效果;用乘法运算实现掩模处理,从而达到屏蔽图像与保留图像的某一部分;用几何运算实现图像的缩放,裁剪,旋转等功能;用逻辑运算实现突出两幅图像中的不同部分,而屏蔽掉相同部分。正因为这些图像处理中应用了数学运算,才使整个软件更加神奇。当然,在应用数学运算进行程序设计时要注意以下原则:能做加法,就不要做乘法;能进行移位运算,就不要做乘法运算;能进行整数运算,就不要进行浮点运算。
5. 优化算法的关键是优化循环
整个软件编程过程中,经常会使用同一个编程思路,那就是:“循环处理图像数据区内所有像素”,然而一幅图像可能含有上千万个像素点,对于这样大规模的运算,要处理完它们不是一件容易的事,因此节省像素的每一步运算是优化算法的关键,在编程过程中使用以下原则可优化循环:
* 如果将多条语句组合成一条语句可能改善性能,则就使用一条语句。
* 循环体中应尽量使用常用的数据结构(如int、uint 、byte等),避免使用类、结构体等非常用数据结构(如color)来进行运算
6. 结束语
本文分析了儿童画图软件现状与未来,介绍了使用C#与flash技术设计与实现的一款儿童画图软件,希望此文能够达到“抛砖引玉”的作用,吸引更多的专业人士在这方面为我们的下一代投入更多的精力,做出更多努力。
参考文献:
[1] 王小科,徐薇.《C#从入门到精通》.北京:清化大学出版社,2010
[2] 杨东昱.《ActionScript3.0范例随学随用》.北京:清华大学出版式社,2009
[3] 周鸣杨, 赵景亮 .《精通GDI+编程》.北京:清华大学出版式社,2004
[4] 联骏.图像编程精髓:从开发自己的photoshop开始.北京:电子工业出版社,2006
下一篇:高校图书馆面向企业的信息服务研究