[發明專利]基于Qt的橡皮筋動畫繪制方法無效
| 申請號: | 201010601509.3 | 申請日: | 2010-12-23 |
| 公開(公告)號: | CN102568022A | 公開(公告)日: | 2012-07-11 |
| 發明(設計)人: | 楊若海;黃國勇 | 申請(專利權)人: | 北京晶智意達科技有限公司 |
| 主分類號: | G06T13/00 | 分類號: | G06T13/00 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100191 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 qt 橡皮筋 動畫 繪制 方法 | ||
技術領域
本發明是一種基于Qt的橡皮筋動畫繪制方法,屬于計算機輔助設計CAD領域,主要用于CAD繪圖編輯工具的實現。
背景技術
很多計算機輔助設計CAD應用程序都需要在屏幕上顯示繪制大量的圖形,由于信息量比較大,重畫的時間可能會比較長。不過這部分圖形通常不會實時發生變化,這里我們可以稱之為靜態部分;而編輯操作產生的一些指示性圖形,比如橡皮筋可以提供一個矩形框或線段用來表示選擇或一個區域,這些有動畫效果的圖形內容不是非常多,但是會隨著操作者的鼠標移動而實時發生變化,這里我們可以稱之為動態部分。這兩部分各具特點,如何能夠提高繪圖的效率,并且提供更好的使用感受,是本發明要解決的問題。
Qt是為開發跨平臺的圖形用戶界面應用程序提供的一個完整的C++應用程序開發框架,它提供了繪制圖形的接口。
發明內容
本發明的目的在于:為基于Qt的應用程序提供一種繪制橡皮筋動畫的方法。通常的橡皮筋動畫采用XOR異或的方法,但是這種方法不一定能正常工作,因為在不同的系統平臺上渲染的方式可能會不同,同時像素點間的異或操作會導致表現顏色的不固定。將動畫覆蓋的區域進行重畫也是一種方法,但對靜態部分的重畫會比較耗時,即使是僅僅對線段附近的一小部分進行重畫。Qt本身也提供了一個橡皮筋類QRubberBand,但它的缺點是只能畫矩形或線段,可用性不是很好。
與傳統的方法相比,本發明的方法首先將靜態部分存放在一個脫屏緩沖區中,當有鼠標移動事件時,會將脫屏緩沖區拷貝到屏幕上覆蓋掉原來的內容,再直接在屏幕上繪制動畫,這樣可以立刻清除原來的動畫并且不需要重畫靜態部分,提高了效率并且不會有閃爍感,直接繪制動畫使得可以任意設置顏色和其它效果而不會受到作為背景的靜態部分圖案的影響。
附圖說明
圖1是完成一次動畫刷新操作的流程圖
具體實施方式
動畫效果一般是跟隨鼠標的移動而變化的,QWidget是Qt系統中基本圖形界面組件,當它捕捉到一個鼠標移動事件后,更新當前的鼠標位置,設置刷新標志,然后將控制權返回到Qt事件循環中并在適當的時候產生一個暴露事件;在處理暴露事件的時候,首先需要判斷刷新標志,如果需要重畫靜態部分則立刻進行并且更新脫屏緩沖區,否則直接將脫屏緩沖區拷貝到屏幕上,覆蓋掉原來的內容,這樣同時也清除了上一個狀態的動畫內容,再根據當前的鼠標位置直接在屏幕上繪制新的動畫內容,這樣連續進行就可以在屏幕上產生一種連續的效果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京晶智意達科技有限公司,未經北京晶智意達科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010601509.3/2.html,轉載請聲明來源鉆瓜專利網。





