一种指针式虚拟仪表盘的实现方法技术

技术编号:11102862 阅读:121 留言:0更新日期:2015-03-04 15:02
本发明专利技术公开了一种指针式虚拟仪表盘的实现方法,包括:建立一份设备上下文;加载表盘背景;复制两份内存上下文,表盘背景作为画布;加载表针图片;获取表针图像大小;设置表针旋转中心;表针旋转α角度后,以一个坐标为旋转中心,以step距离进行栅格化处理;获取每个小矩形坐标;在一个内存上下文中绘制旋转α角度的表针;将上述内存上下文中相应位置图像复制到设备上下文上进行显示;当角度α发生变化后,在上述内存上下文中重新绘制表针;按照角度α变化前矩形坐标,用另外一个内存上下文中相应背景图像擦除设备上下文上的上一次表针显示内容;按照角度α变化后的矩形坐标,将内存上下文中相应位置图像复制到设备上下文上进行显示。

【技术实现步骤摘要】
一种指针式虚拟仪表盘的实现方法
本专利技术属于机动车辆仪表盘
,具体涉及一种指针式虚拟仪表盘的实现方法。
技术介绍
目前,最常见的仪表盘大多数采用动圈或动磁式模拟仪表、步进电机式数字仪表方式进行信息显示,而随着计算机和液晶显示技术进一步发展,一些设备开始逐步采用液晶屏进行人机交互,由此仪表盘也变得越来越漂亮,功能越来越多,从实用开始走向时尚、炫目,最终完成实用与时尚的完美结合。为了不改变操作者的使用习惯,虽然很多设备的仪表盘逐渐升级为液晶屏显示,但是像发动机转速、车速等参数还要在液晶屏上模拟真实仪表进行显示,这种需求给产品的实现带来很多问题:首先,表针转动时,需要模拟模拟仪表加、减速等惯性环节,显示要连续,不能一步一步跳动;其次,刷新频率要高,一般要达到毫秒级,由于刷新速度快,背景重绘时容易造成屏幕闪烁。针对以上问题,很多厂家采用双缓冲技术消除仪表显示画面的闪烁问题,效果并不理想,采用双缓冲的方式,只解决了后台图形绘制、复杂图形计算等效率,但是不能够提高从缓存中读取的速度,随着屏幕和分辨率逐步变大,显示的虚拟仪表数量变多,闪烁的问题就变得十分明显。由于嵌入式设备资源比较有限,有些厂家牺牲硬件成本解决软件问题,造成成本增大。
技术实现思路
本专利技术要解决的技术问题是设计一种具有如下功能的指针式虚拟仪表盘的实现方法:将特定区域分割成若干个小方框,背景重绘时只需要刷新通过计算获得的方框即可,减少刷新面积,可以解决虚拟表盘在实时刷新过程中闪烁问题,提高表盘显示效果和硬件使用效率,降低硬件成本。为解决上述技术问题,本专利技术采用的技术方案为:一种指针式虚拟仪表盘的实现方法,包括如下步骤:步骤101、建立一份设备上下文DC;步骤102、加载表盘背景,并在设备上下文DC上进行显示;步骤103、复制两份内存上下文MEMDC1、MEMDC2,表盘背景作为画布;步骤104、加载表针图片;步骤105、获取表针图像大小,宽度w,长度l,此时表针可以表示成长为l,宽为w的矩形;步骤106、设置表针旋转中心(X0,Y0);步骤107、表针旋转α角度后,以坐标(X0,Y0)为旋转中心,以step距离进行栅格化处理;步骤108、通过几何计算,获取每个小矩形坐标;步骤109、在内存上下文MEMDC1中绘制旋转α角度的表针;步骤110、按照步骤108获得的矩形坐标,将内存上下文MEMDC1中相应位置图像复制到设备上下文DC上进行显示;步骤111、当角度α发生变化后,在内存上下文MEMDC1中重新绘制表针,并通过几何计算得到新的矩形坐标;步骤112、按照角度α变化前矩形坐标,用内存上下文MEMDC2中相应背景图像擦除设备上下文DC上的上一次表针显示内容,保持背景不变;步骤113、按照角度α变化后的矩形坐标,将MEMDC1中相应位置图像复制到设备上下文DC上进行显示;步骤114、如果角度α发生变化,则重复步骤111~113。进一步:上述步骤108的具体计算过程如下:步骤1、已知表针图像大小,即宽度w和长度l,旋转角度α,步长step;步骤2、根据旋转角度α,可知直线斜率k=tan(α)步骤3.将系统坐标平移至表针旋转中心(X0,Y0)可得到求中线函数y′=k*x′其中:x′为平移坐标系中的横坐标,y′为平移坐标系中的纵坐标步骤4、当0≤α≤45时,根据图片宽度w,可以求出另外表针矩形框的两条长边平行线函数方程:其中:y′01为靠近x轴长边的纵坐标,y′02为靠近y轴长边的纵坐标。步骤5、求表针图像端点B0点坐标(x′B0,y′B0)步骤6、垂直栅格处理后,求第一个矩形(由右至左)左上角A0点的栅格坐标(x″A0,y″A0)步骤7、求y′02延长线与第一个矩形的交点C0的坐标(x′C0,y′C0)x′C0=(x′A0+1)*step步骤8、栅格坐标中,求第一个矩形的右下角D0点的栅格坐标步骤9、求新坐标系,即栅格坐标系中的直线方程y″=k*x″|c其中:x″为栅格坐标系中的横坐标,y″为栅格坐标系中的纵坐标将(x″A0,y″A0)代入方程,求得c=y″A0-k*x″A0则:y″-k*x″+y″A0-k*x″A0简化:y″=k*(x″-x″A0)+y″A0步骤10、将(x″,y″)离散化处理,第n点坐标为x″An=x″A0-ny″An=y″A0-quotlent(k*n/0.99),0.99消除k转换精度问题步骤11、将α=45代入4~10步,可以求出y方向栅格极限数量num,其他旋转角度的y方向栅格数量都不会大于num,简化程序运算时间num=y″D0-y″A0步骤12、通过以上计算,得出第一个矩形坐标左上角坐标:(x″A0,y″A0)右下角坐标:(x″D0,y″D0)=(x″A0+1,y″A0+num)步骤13、其他矩形坐标,第n个矩形左上角坐标:(x″An,y″An)=(x″A0-n,y″A0-quotlent(k*n/0.99))第n个矩形右下角坐标:(x″Dn,y″Dn)=(x″An+1,y″An+num)其中n取值范围:0<n≤x″A0步骤14、以上计算,适合角度范围(0≤α<45),如图6,表针靠近x轴,矩形框以竖长形为最佳,(135≤α<180)、(180≤α<225)、(315≤α<360)也是一样道理;其他角度情况,表针靠近y轴,矩形框以横宽形为最佳,如图7。步骤15、根据三角函数特性,可以计算出所有角度范围的坐标,具体如下:⑴第一象限角度范围(0≤α<45)第1个矩形{(x″A0,y″A0),(x″D0,y″D0)}第n个矩形{(x″An,y″An),(x″Dn,y″Dn)}角度范围(45≤α<90),α=90-α第1个矩形{(y″A0,x″A0),(y″D0,x″D0)}第n个矩形{(y″An,x″An),(y″Dn,x″Dn)}⑵第二象限角度范围(90≤α<135),α=α-90第1个矩形{(-y″D0,x″A0),(-y″A0,x″D0)}第n个矩形{(-y″Dn,x″An),(-y″本文档来自技高网...
一种指针式虚拟仪表盘的实现方法

【技术保护点】
一种指针式虚拟仪表盘的实现方法,其特征在于,包括如下步骤:步骤101、建立一份设备上下文DC;步骤102、加载表盘背景,并在设备上下文DC上进行显示;步骤103、复制两份内存上下文MEMDC1、MEMDC2,表盘背景作为画布;步骤104、加载表针图片;步骤105、获取表针图像大小,宽度w,长度l,此时表针可以表示成长为l,宽为w的矩形;步骤106、设置表针旋转中心(X0,Y0);步骤107、表针旋转α角度后,以坐标(X0,Y0)为旋转中心,以step距离进行栅格化处理;步骤108、通过几何计算,获取每个小矩形坐标;步骤109、在内存上下文MEMDC1中绘制旋转α角度的表针;步骤110、按照步骤108获得的矩形坐标,将内存上下文MEMDC1中相应位置图像复制到设备上下文DC上进行显示;步骤111、当角度α发生变化后,在内存上下文MEMDC1中重新绘制表针,并通过几何计算得到新的矩形坐标;步骤112、按照角度α变化前矩形坐标,用内存上下文MEMDC2中相应背景图像擦除设备上下文DC上的上一次表针显示内容,保持背景不变;步骤113、按照角度α变化后的矩形坐标,将MEMDC1中相应位置图像复制到设备上下文DC上进行显示;步骤114、如果角度α发生变化,则重复步骤111~113。...

【技术特征摘要】
1.一种指针式虚拟仪表盘的实现方法,其特征在于,包括如下步骤:步骤101、建立一份设备上下文DC;步骤102、加载表盘背景,并在设备上下文DC上进行显示;步骤103、复制两份内存上下文MEMDC1、MEMDC2,表盘背景作为画布;步骤104、加载表针图片;步骤105、获取表针图像大小,宽度w,长度l,此时表针可以表示成长为l,宽为w的矩形;步骤106、设置表针旋转中心(X0,Y0);步骤107、表针旋转α角度后,以坐标(X0,Y0)为旋转中心,以step距离进行栅格化处理;步骤108、通过几何计算,获取每个小矩形坐标;步骤109、在内存上...

【专利技术属性】
技术研发人员:李玉河高阳
申请(专利权)人:天津工程机械研究院
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1