CN108710524A - 一种三缓冲快速交互式绘图方法 - Google Patents
一种三缓冲快速交互式绘图方法 Download PDFInfo
- Publication number
- CN108710524A CN108710524A CN201810474978.XA CN201810474978A CN108710524A CN 108710524 A CN108710524 A CN 108710524A CN 201810474978 A CN201810474978 A CN 201810474978A CN 108710524 A CN108710524 A CN 108710524A
- Authority
- CN
- China
- Prior art keywords
- layer
- content
- background
- foreground
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种三缓冲快速交互式绘图方法,属于计算机应用以及绘图领域,本发明首先在内存中建立三个缓冲区图层:背景缓冲区图层、绘图缓冲区图层以及设备缓冲区图层;将不依赖于用户频繁操作而改变的绘图内容绘制到背景缓冲区图层;联合前景内容与背景缓冲区的信息绘制到绘图缓冲区中;通过设备缓冲区将绘图内容传输到屏幕中,从而消除卡顿现象。当与用户进行交互式操作时,如果只有前景内容变化,只需绘制前景而不需要重复绘制背景内容。本发明能够大大降低交互式绘图程序的绘图时间,具有绘图效率高、所需额外内存小以及实施过程方便的优点,可应用于石油综合录井绘图系统以及地质分层绘图系统等工业绘图系统。
Description
技术领域
本发明涉及计算机应用以及绘图领域,具体是一种三缓冲快速交互式绘图方法。
背景技术
计算机绘图在很多系统中都有着重要的应用。例如在综合录井图绘制过程中,通过读取数据库录井数据从而在客户端显示矢量绘图;在2D或3D用户交互式绘图系统中,用户通过编辑操作改变绘图内容等。然而在很多情况下绘制复杂图形非常耗时,当用户对绘制内容进行频繁修改时,传统的绘图方法在更新屏幕内容时需要重新绘制所有的绘图内容,从而会消耗很大的绘制时间,导致程序在显示过程中造成卡顿现象,给实时的人机交互操作带来很大的不变。如何在交互式操作的过程中加快绘图速度是目前一个非常具有挑战性的难题。
随着计算机技术的发展,基于面向对象的C#语言得到了越来越广泛的应用,C#具有开发速度快、高可移植性以及高安全性等特点。基于C#的GDI+类库是用于桌面程序绘图的强大接口,实现了技术人员与硬件设备的隔离,提升了开发人员效率。基于GDI+的绘图程序具有可移植性好、代码复用性高以及可扩展性强等优点。
发明内容
为了实现加快人机交互频繁的绘图绘制速度以及缩短程序的响应时间,并解决刷新屏幕所产生的卡顿现象,本发明提出一种三缓冲快速交互式绘图方法。能够将依赖于用户频繁操作的绘制内容与不依赖于用户频繁操作的绘制内容进行分别绘制,利用三层缓冲区避免了重复绘制相同的背景内容,大大减小了程序的整体绘图时间,提升了绘制效率,在计算机绘图系统以及综合录井系统中有着重要的作用。
本发明基于GDI+类库在内存中建立了三层缓冲用于优化程序的绘制速度。背景缓冲区图层I1用于存储背景绘图内容,其不依赖于用户的某些频繁操作变化;绘图缓冲区图层I2用户实时绘制背景与前景内容;设备缓冲区图层I3用于缓冲需要绘制到屏幕上的内容,消除在绘制前景内容时发生的卡顿现象。通过对绘制内容的分类执行不同的操作,从而加快绘图速度、缩小程序响应时间。此外,根据用于以往的输入,智能预测用户的下一步输入,提前绘制图像,达到减少实时绘制所需要的时间,提高用户使用流畅度。
本发明的技术方案是
一种三缓冲快速交互式绘图方法,将交交互式的绘图内容分为可变的前景内容与不变的背景内容;其中可变的前景内容是与用户实时操作相关的并且需要及时重新绘制的绘图内容,不变的背景内容是指不依赖与用户实时操作的绘图内容;然后把绘图内容通过组合送入设备内存进行显示。
进一步的,建立三层图像内存缓冲区,其中第一层I1作为绘图背景缓冲区,负责背景区域的绘制;第二层I2为绘图内容缓冲区,将前景与背景绘制到此层中;第三层I3为绘图设备缓冲区,负责将缓冲区I2的内容传输到显示设备中。
操作过程为:
首先在内存中建立三个缓冲区图层:背景缓冲区图层、绘图缓冲区图层以及设备缓冲区图层;
将不依赖于用户频繁操作而改变的绘图内容绘制到背景缓冲区图层;联合前景内容与背景缓冲区的信息绘制到绘图缓冲区中;通过设备缓冲区将绘图内容传输到屏幕中;
当与用户进行交互式操作时,如果只有前景内容变化,只需绘制前景而不需要重复绘制背景内容。
具体步骤如下:
步骤1、读入绘制数据;
步骤2、建立背景缓冲区图层I1;
步骤3、建立绘图缓冲区图层I2;
步骤4、建立设备缓冲区图层I3;
步骤5、将绘图程序中的不变背景内容绘制到图层I1;
步骤6、将图层I1复制到图层I2;
步骤7、将绘图程序中的可变前景内容绘制到图层I2;
步骤8、将图层I2复制到图层I3;
步骤9、将图层I3复制到屏幕设备上;
步骤10、基于卡尔曼滤波算法估计下一次用户输入;
步骤11、根据预测结果提前绘制图像至缓冲区I2;
步骤12、检查绘图背景是否发生变化,如果是,返回步骤5;否则,继续;
步骤13、检查绘图前景是否发生变化,如果是,返回步骤7;否则,继续;
步骤14、等待程序是否结束绘制,如果是,结束;否则,返回步骤12。
本发明的有益效果是:
通过建立三层内存图像缓冲区,将绘图内容的不变部分与变化部分分别进行绘制,最后通过组合送入设备内存进行显示,大大加快了绘图内容的绘制速度;此外,通过基于卡尔曼滤波的方法预测用户输入,提前绘制图像,进一步缩短了人机交互的响应时间,并能够使程序有更多的时间处理其他任务,本发明也可以经过拓展应用到其他计算机人工交互编辑绘图程序中。
附图说明
附图1是本发明的工作流程图。
具体实施方式
下面对本发明的内容进行更加详细的阐述:
如图1所示,本发明的一种三缓冲快速交互式绘图方法,包括如下步骤:
步骤1,读入绘制数据;
步骤2,建立背景缓冲区图层I1;
在C#中通过参数接口内存中建立与绘制屏幕同样大小的绘图缓冲区I1,其宽度为M,高度为N。该背景缓冲区用于绘制与存储程序中不变的背景内容,其中程序的背景内容定义为不依赖于用户频繁操作而改变的绘制内容。
步骤3,建立绘图缓冲区图层I2;
在C#中通过参数接口在内存中建立与绘制屏幕同样大小的绘图缓冲区I1,其宽度为M,高度为N。该缓冲区用于存储程序中所绘制的背景和前景内容,其中程序的前景内容定义为依赖于用户频繁操作而改变的绘制内容。
步骤4,建立设备缓冲区图层I3;
在C#中通过参数接口在内存中建立与绘制屏幕同样大小的绘图缓冲区I1,其宽度为M,高度为N。该缓冲区用于将I2中的绘图内容传输到屏幕设备上,从而消除重复绘制时导致的闪烁现象。
步骤5,将绘图程序中的不变背景内容绘制到图层I1;
通过C#中的GDI+类库将程序所需要绘制的背景内容绘制到绘图缓冲区图层I1上。这样,当用户对绘制内容进行改变时,程序将不会对不变的背景内容进行重复绘制,从而节省了绘制背景内容所需要的时间。
步骤6,将图层I1复制到图层I2;
通过C#类库将程序背景缓冲区图层I1中的内容复制到绘图缓冲区图层I2中。由于该步骤所执行的操作属于内存区域操作,因此所消耗的时间非常小,不会对程序的性能造成明显的影响。
步骤7,将绘图程序中的可变前景内容绘制到图层I2;
通过C#中的GDI+类库将程序所需要绘制的前景内容绘制到绘图缓冲区图层I2上。
步骤8,将图层I2复制到图层I3;
通过C#类库将程序背景缓冲区图层I2中的内容复制到绘图缓冲区图层I3中。与步骤6类似,由于该步骤所执行的操作属于内存区域操作,因此所消耗的时间非常小,不会对程序的性能造成明显的影响。
步骤9,将图层I3复制到屏幕设备上;
通过C#类库将程序背景缓冲区图层I3中的内容绘制到屏幕设备中。与步骤6类似,由于该步骤所执行的操作属于内存区域操作,因此所消耗的时间非常小,不会对程序的性能造成明显的影响。
步骤10,基于卡尔曼滤波算法估计下一次用户输入;
●步骤10.1,接受用户输入Yk;
其中Xk为实数:负数表示向上移动图像,正数表示向下移动图像;
●步骤10.2,计算偏差;
计算Vk=Yk-HkXk,其中Hk为测量矩阵,通常取1。
●步骤10.3,计算误差的协方差矩阵;
计算Sk=HkPk(Hk)T+Rk;其中Rk是测量噪声的协方差矩阵
●步骤10.4,更新(Xk)’;
计算Kk=Pk(Hk)T(Sk)-1;然后,计算(Xk)’=(Xk-1)’+KkVk。
●步骤10.5,更新协方差矩阵(Pk)’;
计算(Pk)’=(I-KkHk)Pk
●步骤10.6,预测下一次用户的操作输入Xk+1;
计算Xk+1=Fk+1(Xk)’+Bk+1uk+1,其中,Fk+1是状态转换模型,Bk+1为控制输入模型,uk+1是控制向量。
●步骤10.7,预测模型的协方差误差;
计算Pk+1=Fk+1(Pk)’(Fk+1)T+Qk+1,其中Qk是协方差矩阵。
步骤11,根据预测结果Xk+1提前绘制图像至缓冲区I2。
步骤12,检查绘图背景是否发生变化,如果是,返回步骤5;否则,继续;
当用户的某些操作导致绘图背景需要重新绘制时,程序将会受到相应的消息。如果程序受到重新绘制背景内容的消息,那么返回步骤5,对背景内容和前景内容都进行绘制;否则,继续。
步骤13,检查绘图前景是否发生变化,如果是,返回步骤7;否则,继续;
当用户某些非常频繁的操作导致绘图进行重新绘制时,由于背景无需重新绘制,因此返回步骤7即可,另外,由于很多情况下绘制背景内容的时间和复杂度远远大于绘制前景内容,因此该步骤能够节省大量的绘制时间,从而加快程序的绘图效率;否则,继续。
步骤14,等待程序是否结束绘制,如果是,结束;否则,返回步骤12。
Claims (5)
1.一种三缓冲快速交互式绘图方法,其特征在于,
将交交互式的绘图内容分为可变的前景内容与不变的背景内容;其中可变的前景内容是与用户实时操作相关的并且需要及时重新绘制的绘图内容,不变的背景内容是指不依赖与用户实时操作的绘图内容;然后把绘图内容通过组合送入设备内存进行显示。
2.根据权利要求1所述的方法,其特征在于,
建立三层图像内存缓冲区,其中第一层作为绘图背景缓冲区,负责背景区域的绘制;第二层为绘图内容缓冲区,将前景与背景绘制到此层中;第三层为绘图设备缓冲区,负责将缓冲区的内容传输到显示设备中。
3.根据权利要求2所述的方法,其特征在于,
操作过程为:
首先在内存中建立三个缓冲区图层:背景缓冲区图层、绘图缓冲区图层以及设备缓冲区图层;
将不依赖于用户频繁操作而改变的绘图内容绘制到背景缓冲区图层;联合前景内容与背景缓冲区的信息绘制到绘图缓冲区中;通过设备缓冲区将绘图内容传输到屏幕中;
当与用户进行交互式操作时,如果只有前景内容变化,只需绘制前景而不需要重复绘制背景内容。
4.根据权利要求3所述的方法,其特征在于,
具体步骤如下:
步骤1)读入绘制数据;
步骤2)建立背景缓冲区图层I1;
步骤3)建立绘图缓冲区图层I2;
步骤4)建立设备缓冲区图层I3;
步骤5)将绘图程序中的不变背景内容绘制到图层I1;
步骤6)将图层I1复制到图层I2;
步骤7)将绘图程序中的可变前景内容绘制到图层I2;
步骤8)将图层I2复制到图层I3;
步骤9)将图层I3复制到屏幕设备上;
步骤10)基于卡尔曼滤波算法估计下一次用户输入;
步骤11)根据预测结果提前绘制图像至缓冲区I2;
步骤12)检查绘图背景是否发生变化,如果是,返回步骤5;否则,继续;
步骤13)检查绘图前景是否发生变化,如果是,返回步骤7;否则,继续;
步骤14)等待程序是否结束绘制,如果是,结束;否则,返回步骤12。
5.根据权利要求4所述的方法,其特征在于,
步骤10)的内容还包括如下步骤:
步骤10.1)接受用户输入Yk;
其中Xk为实数:负数表示向上移动图像,正数表示向下移动图像;
步骤10.2)计算偏差;
计算Vk=Yk-HkXk,其中Hk为测量矩阵,通常取1;
步骤10.3)计算误差的协方差矩阵;
计算Sk=HkPk(Hk)T+Rk;其中Rk是测量噪声的协方差矩阵;
步骤10.4)更新(Xk)’;
计算Kk=Pk(Hk)T(Sk)-1;然后,计算(Xk)’=(Xk-1)’+KkVk;
步骤10.5)更新协方差矩阵(Pk)’;
计算(Pk)’=(I-KkHk)Pk
步骤10.6)预测下一次用户的操作输入Xk+1;
计算Xk+1=Fk+1(Xk)’+Bk+1uk+1,其中,Fk+1是状态转换模型,Bk+1为控制输入模型,uk+1是控制向量;
步骤10.7)预测模型的协方差误差;
计算Pk+1=Fk+1(Pk)’(Fk+1)T+Qk+1,其中Qk是协方差矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810474978.XA CN108710524A (zh) | 2018-05-17 | 2018-05-17 | 一种三缓冲快速交互式绘图方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810474978.XA CN108710524A (zh) | 2018-05-17 | 2018-05-17 | 一种三缓冲快速交互式绘图方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108710524A true CN108710524A (zh) | 2018-10-26 |
Family
ID=63869129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810474978.XA Pending CN108710524A (zh) | 2018-05-17 | 2018-05-17 | 一种三缓冲快速交互式绘图方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108710524A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853621A (zh) * | 2012-12-05 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 一种跨进程交互方法及相关终端设备 |
CN105094411A (zh) * | 2014-05-09 | 2015-11-25 | 宏达国际电子股份有限公司 | 电子装置及其绘图方法及计算机程序产品 |
CN105447813A (zh) * | 2015-12-01 | 2016-03-30 | 上海兆芯集成电路有限公司 | 合并图层的方法及装置 |
CN106548500A (zh) * | 2016-09-26 | 2017-03-29 | 中国电子科技集团公司第二十九研究所 | 一种基于gpu的二维态势图像处理方法及装置 |
CN107247560A (zh) * | 2017-05-23 | 2017-10-13 | 努比亚技术有限公司 | 数据存储方法及移动终端 |
CN107423071A (zh) * | 2017-08-07 | 2017-12-01 | 苏州速显微电子科技有限公司 | 一种基于静态图层的高效率人机界面绘图方法 |
-
2018
- 2018-05-17 CN CN201810474978.XA patent/CN108710524A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853621A (zh) * | 2012-12-05 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 一种跨进程交互方法及相关终端设备 |
CN105094411A (zh) * | 2014-05-09 | 2015-11-25 | 宏达国际电子股份有限公司 | 电子装置及其绘图方法及计算机程序产品 |
CN105447813A (zh) * | 2015-12-01 | 2016-03-30 | 上海兆芯集成电路有限公司 | 合并图层的方法及装置 |
CN106548500A (zh) * | 2016-09-26 | 2017-03-29 | 中国电子科技集团公司第二十九研究所 | 一种基于gpu的二维态势图像处理方法及装置 |
CN107247560A (zh) * | 2017-05-23 | 2017-10-13 | 努比亚技术有限公司 | 数据存储方法及移动终端 |
CN107423071A (zh) * | 2017-08-07 | 2017-12-01 | 苏州速显微电子科技有限公司 | 一种基于静态图层的高效率人机界面绘图方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8810576B2 (en) | Manipulation and management of links and nodes in large graphs | |
CN112819170A (zh) | 控制脉冲生成方法、装置、系统、设备及存储介质 | |
AU2021201794A1 (en) | Method and apparatus for evaluating quantum gate in superconducting circuit, device and storage | |
CN112819971B (zh) | 虚拟形象的生成方法、装置、设备和介质 | |
CN108304239B (zh) | 用于远程操作的快速界面交互方法及装置 | |
CN112001180A (zh) | 多模态预训练模型获取方法、装置、电子设备及存储介质 | |
CN110648294B (zh) | 图像修复方法、装置及电子设备 | |
CN104732034A (zh) | 一种建筑工程算量系统及其工作机制 | |
KR101399472B1 (ko) | 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법 | |
US20210232986A1 (en) | Parking lot free parking space predicting method, apparatus, electronic device and storage medium | |
JP2005501314A (ja) | 複雑なデータ分析及び工学的設計で使用するためのハードウェア適応可能データビジュアリゼーションツール | |
CN114282448A (zh) | 流场信息获取方法、模型训练方法、装置及电子设备 | |
CN110807331A (zh) | 一种多音字读音预测方法、装置和电子设备 | |
CN110852449A (zh) | 模型迁移方法和电子设备 | |
US20230130901A1 (en) | Method for constructing three-dimensional map in high-definition map, device and storage medium | |
JP2022179307A (ja) | ニューラルネットワークトレーニング方法、装置、電子機器、媒体及びプログラム製品 | |
CN114911596B (zh) | 针对模型训练的调度方法、装置、电子设备和存储介质 | |
CN113657934A (zh) | 客流量预测模型的训练方法和客流量的预测方法和装置 | |
CN113870399B (zh) | 表情驱动方法、装置、电子设备及存储介质 | |
CN111611808A (zh) | 用于生成自然语言模型的方法和装置 | |
CN111027704A (zh) | 量子资源估计方法、装置和电子设备 | |
CN111125451B (zh) | 数据生产加工方法、装置、电子设备及存储介质 | |
CN108710524A (zh) | 一种三缓冲快速交互式绘图方法 | |
CN110688327B (zh) | 显存管理方法、装置、电子设备和计算机可读存储介质 | |
CN111311000B (zh) | 用户消费行为预测模型训练方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181026 |