放大镜的设计与实现.docx
- 文档编号:556491
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:55
- 大小:1.13MB
放大镜的设计与实现.docx
《放大镜的设计与实现.docx》由会员分享,可在线阅读,更多相关《放大镜的设计与实现.docx(55页珍藏版)》请在冰豆网上搜索。
放大镜的设计与实现
放大镜的设计与实现
摘要
本方案描述了由C++开发的放大镜软件的设计与实现,介绍了软件研究的技术要求,并对开发该软件的目的、开发环境与平台、设计理念与软件功能进行了描述。
该方案设计具体详细的阐述了方案的可行性、课题选择的意义、方案的设计方式、实现逻辑、软件运作流程、界面的设计、程序的设计等。
其中,界面设计包括被放大镜的窗口设计以及被放大区域的计算方式,程序设计包括总体流程设计、放大镜窗体设计、消息循环设计、以及窗口美化设计。
此外还对代码的实现进行了介绍,主要包括放大窗口设计模块、图像采集模块设计、消息循环模块以及放大窗口美化模块。
最后对放大镜软件进行了功能测试,并对测试结果进行总结。
读者通过阅读本文,将对该软件有一个系统的了解。
关键词程序设计;放大镜;C++;API
Designandimplementationofamagnifyingglass
Abstract
ThisscenariodescribesthedesignandimplementationofC++softwaredevelopmentmagnifyingglass,introducesthetechnicalrequirementsforsoftwareresearchanddevelopmentpurposeofthesoftwaredevelopmentenvironmentandplatformdesignandsoftwarefeaturesaredescribed.
Theprogramspecificallydesignedindetailthefeasibilityoftheprogram,meaningthesubjectchoice,thewaytheprogramdesign,implementationlogic,software,operationalprocesses,interfacedesign,programdesign.Amongthem,theinterfacedesign,includingcalculationisamagnifyingglasswindowdesignandtheareaisenlarged,theoverallprogramdesign,includingprocessdesign,magnifyingglassformdesign,themessageloopdesign,landscapingandwindowdesign.Inaddition,therealizationofthecodewereintroduced,includingthezoomwindowdesignmodule,imageacquisitionmoduledesign,moduleandzoomwindowsmessageloopbeautificationmodule.
Finallymagnifiersoftwareforfunctionaltesting,andtestresultsaresummarized.Byreadingthisarticlethereaderwillunderstandthesoftwarehasasystem.
Keywordsprogramming;magnifying;C++;API
1绪论
1.1课题选择的目的和意义
随着社会科技的进步以及计算机的普及,老年人与残疾人使用计算机已经成为一种潮流并且日益普遍。
由于生理原因,大部分的老年人都有一些视力障碍,而部分残疾人也在视力方面有不足的地方。
虽然现在Windows系统拥有语音系统来帮助用户与计算机进行交互,但是汉语文化博大精深,这使得Windows的字库并不完善。
这便导致语音识别软件的识别模糊度很大,如果碰到一些生僻字,回馈的信息便也不是特别准确,加大了语音系统的局限性。
同时,随着计算机存储空间的增大,个人PC上安装的软件也越来越多,虽然桌面图标可以进行缩小,也可以创建文件夹来集体管理快捷方式,但是固定大小的桌面毕竟无法满足日益增多的快捷方式的存在,这给用户带来了很大的不便。
在这样的背景之下,编写一个精简的放大镜软件,使得用户可以针对性的放大所想要看到的区域与内容,便是一种极好的解决方案。
如果用户拥有一个放大镜软件,那便可以将桌面的分辨率提高,在需要的时候开启放大镜,将无法轻易辨识的内容区域放大显示即可。
在熟练掌握自身编程技术的基础之上,帮助人们去解决一些现实生活中遇到的问题,是一个毕业设计所能达到的最出色的状态。
所以,我希望借助此次毕业设计的机会,利用自身的知识与能力,完成一个放大镜软件的设计与实现,界面简洁,功能完善。
1.2国内外研究现状及发展趋势
严格来讲,放大镜软件在当前的软件发展路程上并不是一个起眼的角色,很多时候这个软件并不被人们所需要,即其需求量几乎为零。
所以放大镜软件也无从谈起研究现状与发展趋势。
但是很多时候因为工作的需要,人们也需要用到放大镜,譬如在一些精微制图过程中,因为图纸过大,固定的屏幕使得尺寸显示数字过小,这便使得用户陷入一种尴尬的境地。
Windows系统拥有自带的放大镜软件,但是其有几个比较突出的缺点。
一、放大效果并不是特别平滑,并且放大之后的图像会产生失真。
二、用户必须通过手动点击的方式来改变软件的放大倍率。
三、放大窗口设计不合理且不可根据用户当前鼠标所在方位自动移动,这使得用户必须手动移动放大窗口,才能更好的查看被窗口所阻挡的区域。
Windows的放大镜软件拥有三种放大方式:
全屏,镜头,与停靠。
全屏状态下用户的整个界面均被放大,此时用户可以通过随意的移动鼠标来寻找内容或改变放大倍率,但是该状态下最大的缺点就是鼠标卷动速度过快以及用户必须手动改变放大倍率。
通过使用发现,当放大倍率过高时,用户很难快速准确的寻找到自己想要查看的区域。
镜头状态下,用户可以查看鼠标当前所在区域的内容,但是该状态最大的缺点就是放大窗口在内容之上,这使得放大窗口直接遮挡了用户想要查看的区域,一方面来讲,虽然实现了放大窗口跟随鼠标的效果,使得用户可以通过窗口进行目标区域内容的查看,但是另一方面,这使得用户不能快速的了解当前鼠标所在区域的具体情况,仅仅只是得到鼠标所在的部分区域的内容。
停靠状态是该软件最好的使用状态,但是该状态依然存在缺点便是放大窗口不可根据鼠标所在位置自动移动,这会导致鼠标移动到窗口内部时,窗口遮挡被放大区域的内容,此时产生的效果便为镜头状态下的效果,依然存在不足的地方。
Linux系统下也有放大镜软件,但是大部分都存在放大模糊的效果,即图像失真,甚至部分软件为了达到美化的地步,将放大窗口圆框化,圆框化对比方框化,最大的区别便是圆框化下被放大区域的算法更加繁复,这就会导致放大窗口边缘经常会出现文字扭曲的情况,完全不能达到一个正常的放大镜软件的使用标准。
由上文我们可以看出,从私人用户的角度来讲,放大镜是一个可有可无的软件,即使需要时,用自带的软件也可以勉强使用,这便导致当前网络上的放大镜软件编写水平粗糙,放大效果不理想。
随着我国工业化的进步以及现代化科学技术的快速发展,放大镜在工业领域的使用则是愈加频繁。
从机械制造角度来讲,船舶工艺与飞行工艺铸造的精度可达0.01mm,而人眼的识别能力在这一精度下就略显吃力,若是将放大镜软件与工业硬件相结合,将其制作为工业用放大镜软件,便可达到更高的识别精度。
这一思想当前在全世界已有实例,当前市场上800倍的光钎放大镜便是极好的证明。
工业用放大镜的发展迅速有两方面的原因,一方面是随着工业技术的提高零件精度的提高需要更高精度的识别器,另一方面,硬件的发展节奏快于软件的发展节奏,这就使得工业用放大镜的硬件水平提高带动了整个产品的发展速度,而随着科学技术的发展,软件制作水平与放大精度也在进步,两者结合,便可达到更高的水平。
所以从另一方面来讲,放大镜软件是具有发展前景的。
1.3研究范围
该软件划分为四个模块:
放大窗口设计模块、图像采集模块设计、消息循环模块以及放大窗口优化模块。
图像采集模块:
该模块为放大镜软件的主要模块之一,其主要功能是通过一系列函数与方法获取被放大区域,然后将得到的数据作为数据源发送至放大窗口设计模块,从而实现放大的功能。
实现思想:
利用WindowsAPI获取当前鼠标所在区域,通过鼠标位置以及计算算式,获取被放大区域,然后将获取的矩形内的图像数据,作为放大窗口的数据源输入。
同时引入MFC库,将采集到的数据通过StretchBlt()函数,复制至目标窗口,实现放大的功能。
消息循环模块:
该模块的主要功能是决定程序的执行代码,根据用户的操作来获取相对应的虚拟信息并进行转换,然后将消息发送至放大窗口,从而改变放大窗口的各项值。
实现思想:
在程序内部以函数的形式定义一个定时器并实现,在主程序内不断读取消息并对放大窗口进行操作,定时器定期监控虚拟信息,将其进行转换后获得信息输入然后将其发送至指定窗口,通过switch...case语句分析信息输入,然后选择性的进行目标代码的运行。
放大窗口设计模块:
该模块为放大镜的主要模块之一,其主要功能是创建一个窗口作为放大窗口,然后将图像采集模块获得的数据作为数据输入并显示,同时通过消息循环模块所发送的消息来决定放大窗口的各项属性。
实现思想:
事先通过定义或者计算得到各个变量的值,之后将获取到的变量置于CreateWindow()函数之中,创建窗口,所创建的矩形为查看窗口,即放大窗口。
同时可通过键盘以及鼠标,对目标矩形进行窗口大小和倍率的修改。
放大窗口优化模块:
该模块是放大窗口设计模块的附属模块,其目的是在放大窗口正常运行的情况下,对放大窗口进行一些优化操作,提高用户的使用体验感。
通过各种MFC预设函数,在目标窗口内进行画线等操作,使得通过人为的程序设计,实现前端窗口可以达到提高用户体验的效果。
目前已在放大窗口内加入了两条交叉红线使得使用者可通过红线的交叉点确定鼠标位置,利用此举使得用户可以判断当前鼠标位置,更好的得到自己想要的信息。
1.4技术要求
(1)该程序设计为Windows桌面应用程序,可运行在WindowsXP及以上版本的Windows操作系统上。
(2)合理划分各功能模块。
(3)调用WindowsAPI实现与操作系统的数据交互。
2软件描述
2.1任务概述
下面我将该课程设计的有关问题简要描述一下
2.1.1系统目标
该放大镜软件可放大屏幕上当前鼠标所在位置周围一定区域的数据,方便用户进行查看不易辨别的区域。
去除原规划的设置界面,加入键盘消息监控代码,使得该区域的大小可由用户通过键盘操作自行设定。
对区域的边界进行阀值设定,防止用户过大或过小的设定窗口大小。
同时对被放大区域的边界进行判定,当被放大区域超出Windows边界时根据鼠标所在位置的情况重新设定窗口大小。
同时可在用户鼠标移向放大区域时改变放大区域的位置,使得用户可以达到查看全屏区域的效果。
对被放大区域与放大窗口的位置进行判定防止两者重叠产生重复放大的情况。
同时用户可使用鼠标的滚轮设定软件的放大倍率。
去除原规划的设置界面,直接修改为利用鼠标控制倍率的调整,提高用户的使用体验感。
通过测试对倍率的阀值进行设定,防止用户过大或过小的调整倍率。
在放大窗口内加入红色线条,交点代表当前鼠标所在位置,使得用户可以快速的寻找到目标位置与目标数据,提高用户的使用体验感。
2.1.2系统的开发环境
硬件:
硬盘空间:
5G
内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 放大镜 设计 实现