在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

完成以復(fù)雜線條為基礎(chǔ)的圖形繪圖

完成以復(fù)雜線條為基礎(chǔ)的圖形繪圖

更新時間:2022-05-04 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

郎銳

一、引言
在GIS(地理信息系統(tǒng))類軟件設(shè)計中經(jīng)常需要在繪圖時使用一些相對固定但又頻繁使用的一些用以代表地理狀態(tài)的符號如河流、鐵路、海岸線等等。每一種符號均有其各自的風(fēng)格,但在不同的位置的具體表示卻不盡相同,比如代表鐵路的符號是一段黑白相間的細矩形,但有時是平直的,在拐彎時用彎曲的矩形來表示。因此對于上述符號的繪制一般不易用固定的圖標(biāo)去實現(xiàn),而多采用靈活多變的用函數(shù)來直接繪制的方法。顯然作為GIS基本符號的圖形一般都是相對比較復(fù)雜的線條,在MFC提供的基本類庫中并未提供可以直接使用的相關(guān)函數(shù)。即使是在繪圖功能比較強大的CDC中也僅僅提供了LineTo()、SetPixel()等一些通用的最基本的繪圖函數(shù),雖然也可以使用這些基本函數(shù)來繪制GIS里的基本符號,但這是效率比較低下的一種辦法,這在大量的繪圖操作中將會表現(xiàn)的比較明顯,因此不宜提倡。本文下面將介紹一種使用Win32 API函數(shù)LineDDA來繪制復(fù)雜風(fēng)格線條的方法來解決上述類似問題。
二、把復(fù)雜風(fēng)格的線條作為基本繪圖操作
在Windows NT 3.1中首次出現(xiàn)了Win32 API函數(shù)LineDDA,用以創(chuàng)建虛線或點劃線,以及其他一些更復(fù)雜的線條。因此可以從該函數(shù)入手來解決以復(fù)雜線條作為基本繪圖操作的問題。LineDDA函數(shù)主要是通過回調(diào)機制來實現(xiàn)其功能的,其繪制線條總是被使用當(dāng)前顯示分辨率的缺省轉(zhuǎn)換和映射模式來計算的。如果不使用缺省方式,也可以向其回調(diào)函數(shù)LineDDAProc傳遞手工轉(zhuǎn)換的X和Y值。LineDDA是一個32位的圖形設(shè)備接口庫函數(shù)調(diào)用,從如下所示的函數(shù)原形中可以看出其入口參數(shù)是一組線條坐標(biāo)、一個回調(diào)函數(shù)的地址以及一個指向應(yīng)用程序定義數(shù)據(jù)的指針:
BOOL LineDDA( int nXStart, // 線條起點的X坐標(biāo)
int nYStart, // 線條起點的Y坐標(biāo)
int nXEnd, // 線條終點的X坐標(biāo)
int nYEnd, // 線條終點的Y坐標(biāo)
LINEDDAPROC lpLineFunc, // 回調(diào)函數(shù)的指針
LPARAM lpData // 應(yīng)用程序定義數(shù)據(jù)的指針);
由lpLineFunc指針指向的回調(diào)函數(shù)將在除終點外的線段的每個點上被調(diào)用,顯然這里是實現(xiàn)復(fù)雜線條算法的最佳地方。該回調(diào)函數(shù)一般可以定義如下:
VOID CALLBACK LineDDAProc(int X, // 被求值點的X坐標(biāo)
int Y, // 被求值點的Y坐標(biāo)
LPARAM lpData // 應(yīng)用程序定義數(shù)據(jù)的指針);
在實際調(diào)用時一般選當(dāng)前的設(shè)備環(huán)境句柄作為應(yīng)用程序定義數(shù)據(jù)的指針,該指針會在調(diào)用LineDDA函數(shù)時將其傳送給回調(diào)函數(shù)LineDDAProc,在回調(diào)函數(shù)中通過CDC* pDC= (CDC*)lpData;強制轉(zhuǎn)換即可在其中使用當(dāng)前的設(shè)備環(huán)境句柄,并通過該句柄進行繪圖等工作。下面通過一個具體實例來做進一步的介紹:
類似于CDC類庫中的繪圖函數(shù),當(dāng)我們把某種較復(fù)雜線條作為一個整體元素進行繪圖操作時有以下幾個元素需要確定:起始點、終止點坐標(biāo),繪圖時用的顏色等。因此可以初步確定繪制復(fù)雜線條的函數(shù)采取如下形式:
void CLineDDAView::DrawWave(CPoint ptFrom, CPoint ptTo, COLORREF crValue)
{
g_crValue=crValue; //繪制圖形用的顏色
CDC* pDC=GetDC(); //獲取當(dāng)前設(shè)備環(huán)境句柄
//通過LineDDA函數(shù)調(diào)用回調(diào)函數(shù)Proc以完成復(fù)雜線條的繪圖工作
LineDDA(ptFrom.x,ptFrom.y,ptTo.x,ptTo.y,(LINEDDAPROC)Proc,(long)pDC);
ReleaseDC(pDC); //釋放申請到的設(shè)備環(huán)境句柄
}
具體的實質(zhì)性工作一般都是放在回調(diào)函數(shù)中進行的,在這里只是象征性的實現(xiàn)一個波浪曲線的繪圖工作:
VOID CALLBACK Proc(int X, int Y, LPARAM lpData)
{
//使用lpData傳遞用于繪圖的CDC對象的引用
CDC* pDC;
pDC = (CDC*)lpData;
//該回調(diào)函數(shù)將在線上每個點處被調(diào)用,因此隨著X坐標(biāo)的變化,縱坐標(biāo)Y+sin(X)
//也就呈正弦波形波動,通過CDC類的SetPixel函數(shù)將計算出的波浪線上的每一點
//都顯示出來。
pDC->SetPixel(X,Y+sin(X),g_crValue);
}
在應(yīng)用時應(yīng)當(dāng)根據(jù)需求的不同采取不同的線條風(fēng)格設(shè)計算法,甚至可以在回調(diào)函數(shù)中使用TextOut函數(shù)實現(xiàn)文本文字的曲線顯示等效果。在使用我們設(shè)計的DrawWave函數(shù)進行繪圖操作時,可以象是使用CDC提供的LineTo等函數(shù)一樣非常簡單的畫出一條在CDC類中并未提供的波浪線。
小結(jié):LineDDA函數(shù)為畫出復(fù)雜線條類型提供了一種解決辦法。雖然是一種Win32的解決辦法,在MFC中并不直接支持,但作為一個一般的解決辦法,它還是十分有用的,而且它能解決一些沒有直接解決辦法的比較獨特的問題。通過對LineDDA函數(shù)的挖掘可以設(shè)計出適合自己需要的可以作為繪圖基本單元的復(fù)雜線條。本程序在Windows 98下,以Microsoft Visual C++ 6.0編譯通過。 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 18视频在线观看娇喘| 先锋影音男人资源| 天堂8在线天堂资源bt| 中日韩av在线播放| 第四色婷婷基地| 国产一二三四在线视频| 久热精品在线播放| 日本 片 成人 在线| 日本不卡一区在线| 国产高清精品软男同| 黄黄视频在线观看| 9色porny| 国产精品一区二区免费在线观看| 欧美日韩福利在线| 99精品视频在线看| av在线网址导航| 中文字幕超清在线免费观看| 51xx午夜影福利| 99爱视频在线| 五月婷婷狠狠操| 欧美在线a视频| 日韩精品福利片午夜免费观看| 中国 免费 av| 黑人糟蹋人妻hd中文字幕| 免费看国产黄色片| 欧美日韩dvd| 你懂的av在线| 国产精品人人爽人人爽| 国产xxxx振车| 日韩视频在线免费播放| 久久久精品高清| 中文字幕乱码人妻综合二区三区| 国产日韩一区二区在线观看| 女人天堂av手机在线| 久久这里只有精品18| 免费观看国产精品视频| 精品一区二区中文字幕| 九九九九九国产| 日韩精品一区在线视频| 黄色影院一级片| 视频一区二区视频| wwwxxx黄色片| 免费的一级黄色片| www.超碰97.com| 18禁男女爽爽爽午夜网站免费| mm1313亚洲国产精品无码试看| 精品日韩在线播放| 日本熟妇人妻中出| 九一国产精品视频| 男人j进女人j| 久久久久久久久久久久91| 国产www免费| 欧美少妇一级片| 老司机久久精品| 成人免费在线小视频| 黄色a级片免费看| 一级 黄 色 片一| 免费一区二区三区在线观看| 国内外成人激情视频| 999一区二区三区| 四虎4hu永久免费入口| 色乱码一区二区三区在线| 欧美一级黄色片视频| 精品视频在线观看一区| 欧美性受xxxx黑人猛交88| 亚洲欧美天堂在线| 性生活免费在线观看| 成人在线观看黄| 久久无码高潮喷水| 国产精品少妇在线视频| 日本中文字幕片| 熟妇人妻va精品中文字幕 | 成人羞羞国产免费网站| 男女日批视频在线观看| 国产91沈先生在线播放| 欧美性猛交内射兽交老熟妇| 成人在线视频一区二区三区| 91视频成人免费| 久久久久久久久久伊人| 做爰高潮hd色即是空| 91制片厂免费观看| 日韩成人av免费| 国产盗摄视频在线观看| 美女av免费观看| 无码人妻精品一区二区三区99v| 黄色网在线视频| www.色就是色.com| 国产精品啪啪啪视频| 国产经典久久久| 91免费黄视频| 逼特逼视频在线| 四虎1515hh.com| 日本天堂免费a| 国产午夜福利100集发布| 999香蕉视频| 青青草原国产在线视频| 中文字幕第50页| 免费观看美女裸体网站| 国产99久久九九精品无码| 成人短视频在线观看免费| 男人揉女人奶房视频60分| 能看的毛片网站| 国产探花在线观看视频| 欧美一级爱爱视频| 成人久久久久久久久| 国产大片一区二区三区| 国产aaa免费视频| 国产av无码专区亚洲精品| 亚洲一区二区偷拍| 熟妇人妻va精品中文字幕| 五月天av影院| 99精品在线免费视频| 日韩欧美中文在线视频| 日韩伦理在线免费观看| 国产日韩欧美久久| 欧美激情视频免费看| 自拍偷拍一区二区三区四区| 人人干视频在线| 激情五月五月婷婷| 国产区二区三区| 2018中文字幕第一页| 欧美丝袜在线观看| 无遮挡又爽又刺激的视频| 日本aa在线观看| 免费不卡av网站| 国产精品视频黄色| 两根大肉大捧一进一出好爽视频| 国产精品99久久久久久大便| 国产成人久久777777| 各处沟厕大尺度偷拍女厕嘘嘘| 黄瓜视频免费观看在线观看www | 欧美日韩在线免费观看视频| 欧美三级理论片| 久久久亚洲精品无码| 国内自拍中文字幕| 日日夜夜精品视频免费观看 | 天堂网在线免费观看| 日本www在线播放| 女女百合国产免费网站| 国产日本欧美在线| 国产日本欧美在线| 欧美性受黑人性爽| 精品国产三级a∨在线| 嫩草视频免费在线观看| 成人黄色一级大片| 美女在线视频一区二区| 色七七在线观看| 久久婷婷国产精品| 人人干人人视频| 久久久久国产一区| 91插插插插插插插插| 九九热免费在线观看| 91av视频免费观看| 国产三级国产精品国产专区50| 久久人人爽av| 99re6这里有精品热视频| 久久久久久av无码免费网站下载| 草草草视频在线观看| 成年人深夜视频| 日韩少妇内射免费播放| 欧美a在线视频| 黄色片在线免费| www.久久久精品| 国产爆乳无码一区二区麻豆| 欧美 日韩 国产一区| 国产精品久久久毛片| 99精品一区二区三区的区别| 日韩精品在线观看av| 日韩av一二三四区| 交换做爰国语对白| 18禁裸男晨勃露j毛免费观看| 男人添女人下面高潮视频| 日韩欧美在线免费观看视频| 国产精品视频中文字幕| 性高湖久久久久久久久aaaaa| 日本国产在线播放| 久久久久久综合网| 欧美三级在线观看视频| 亚洲理论中文字幕| 黄色影院一级片| 免费不卡av网站| 超碰影院在线观看| 免费网站永久免费观看| 国产又黄又猛视频| 精品人妻大屁股白浆无码| 999精品视频在线| 国产一级不卡视频| 污视频在线观看免费网站| 无码少妇一区二区三区芒果| 免费的av在线| 天天干天天干天天干天天干天天干| 国产免费xxx| 亚洲理论中文字幕| 九九热精品在线播放| 久久久久狠狠高潮亚洲精品| 日本一本中文字幕| 久久艹国产精品| dy888午夜| 美国av在线播放| 在线观看日本一区二区|