日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化
[導(dǎo)讀]作者:穆煜,華清遠(yuǎn)見嵌入式學(xué)院講師。 為了能夠使用Qt開發(fā)圖形繪制軟件,首先應(yīng)該掌握Qt的坐標(biāo)系統(tǒng)。在Qt中,通過QPainter類來控制它的坐標(biāo)系統(tǒng)。連同QPaintDevice類與QPaintEngine類,QPainter類構(gòu)成了Qt繪圖系統(tǒng)的

作者:穆煜,華清遠(yuǎn)見嵌入式學(xué)院講師。

為了能夠使用Qt開發(fā)圖形繪制軟件,首先應(yīng)該掌握Qt的坐標(biāo)系統(tǒng)。在Qt中,通過QPainter類來控制它的坐標(biāo)系統(tǒng)。連同QPaintDevice類與QPaintEngine類,QPainter類構(gòu)成了Qt繪圖系統(tǒng)的基礎(chǔ)。其中,QPainter用于執(zhí)行繪圖的操作;QPaintDevice是對一塊二維空間的抽象,在這塊空間上,我們可以使用QPainter進(jìn)行圖形的繪制;QPaintEngine提供了在不同的設(shè)備上進(jìn)行繪圖的接口。

QPaintDevice類是能夠進(jìn)行繪圖的對象的基類,QWidget,QPixmap,QPicture,QImage,以及QPrinter類繼承了QPaintEngine類的繪圖能力。繪圖設(shè)備的缺省坐標(biāo)系統(tǒng)是以左上角作為原點,x坐標(biāo)向右遞增,y坐標(biāo)向下遞增。單位對于不同的設(shè)備是不同的,在基于像素的設(shè)備上,以一個像素作為缺省單位,而在打印機(jī)上,以1/72英寸作為缺省單位。

在編寫圖形繪制軟件時,我們需要進(jìn)行邏輯坐標(biāo)與物理坐標(biāo)之間的轉(zhuǎn)換,這部分功能由QPainter的轉(zhuǎn)換矩陣,視口,以及窗口來實現(xiàn)。缺省情況下,邏輯坐標(biāo)與物理坐標(biāo)是一致的。QPainter也支持平移與旋轉(zhuǎn)這樣的坐標(biāo)變換。

圖元的尺寸(寬度與高度)總是對應(yīng)于它的數(shù)學(xué)模型,并且會忽略它所使用的筆的寬度。下圖是通過兩個點來實現(xiàn)矩形和直線的例子,用到的代碼為:

QRect(1,2,7,6) QLine(2,7,6,1)


在繪圖的時候,我們使用QPainter::Antialiasing的渲染暗示來控制像素渲染。計算機(jī)繪圖會出現(xiàn)走樣的情況,如下圖所示:在繪制直線的時候,出現(xiàn)了邊緣不規(guī)則的情況。


如果我們設(shè)置了QPainter的反走樣渲染暗示,像素將會對稱的出現(xiàn)在點的兩側(cè)。因此,可以使用以下代碼來解決繪制直線出現(xiàn)鋸齒的問題:

這樣繪制的直線如下圖所示:





“本文由華清遠(yuǎn)見
http://www.embedu.org/index.htm提供”



來源:華清遠(yuǎn)見0次

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉