在线看毛片视频-国产免费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美女社区| 天堂v在线视频| 向日葵污视频在线观看| 亚洲综合婷婷久久| 欧美伦理片在线观看| 国产97在线 | 亚洲| 国精产品一区一区三区视频| 18岁网站在线观看| 日本老熟妇毛茸茸| 国内av免费观看| 91嫩草国产丨精品入口麻豆| 国产黄色片免费在线观看| 爱情岛论坛vip永久入口| 日韩中文字幕a| 少妇av一区二区三区无码| 国产h视频在线播放| 国产精品12345| 久久撸在线视频| 岛国av在线免费| www.色就是色.com| www.久久com| 国产午夜伦鲁鲁| 国产精欧美一区二区三区白种人| 糖心vlog在线免费观看| 国产特级黄色大片| www.欧美激情.com| 在线观看免费污视频| 免费裸体美女网站| 成人短视频在线看| 91插插插影院| 手机免费看av网站| 成人免费在线观看视频网站| 无码 制服 丝袜 国产 另类| 懂色av粉嫩av蜜臀av| 四虎成人在线播放| 神马午夜伦理影院| 爱情岛论坛亚洲首页入口章节| 91亚洲一区二区| www.激情网| 免费观看精品视频| 国内国产精品天干天干| 亚洲综合欧美激情| 国产精品嫩草影视| 手机福利在线视频| 成人午夜免费在线视频| 日本一区午夜艳熟免费| 欧美日韩在线视频一区二区三区| 蜜臀av无码一区二区三区| 国内自拍视频网| 久久福利一区二区| 无限资源日本好片| 91网站在线观看免费| 欧美私人情侣网站| 欧美精品一区二区性色a+v| 五月天色婷婷综合| 免费毛片小视频| 大地资源网在线观看免费官网| 韩日视频在线观看| 欧美,日韩,国产在线| 自拍偷拍视频在线| 欧美黄色一级片视频| 男同互操gay射视频在线看| 九九视频精品在线观看| 超碰成人在线播放| 国产成年人视频网站| www婷婷av久久久影片| 成人性生交视频免费观看| 97视频在线免费播放| 黄色免费观看视频网站| 精品国产av无码一区二区三区| www.久久久久久久久久久| 成人性做爰片免费视频| 波多野结衣在线免费观看| gogogo高清免费观看在线视频| 丁香啪啪综合成人亚洲| 三级黄色片免费看| 青草视频在线观看视频| 每日在线观看av| 免费看污污视频| 欧美a级黄色大片| 男人日女人的bb| 国产无色aaa| 黄色成人在线看| 亚洲欧美国产日韩综合| 亚洲精品综合在线观看| 日本精品一区二区三区四区| 久久9精品区-无套内射无码| 久久久久久久久久久久久国产| 天天干天天色天天爽| 波多野结衣家庭教师视频| 国产精品一区在线免费观看| 中文字幕在线乱| 国产精品69页| 国内自拍第二页| 久久久久狠狠高潮亚洲精品| 欧美美女黄色网| 日韩一级在线免费观看| 欧美日韩黄色一级片| 缅甸午夜性猛交xxxx| 青青草视频国产| 男人天堂新网址| 精品成在人线av无码免费看| 亚洲成人手机在线观看| 亚洲国产日韩欧美在线观看| 三级a在线观看| 免费看污污网站| 少妇人妻在线视频| 女人床在线观看| 九九九九免费视频| 国产成人久久777777| 漂亮人妻被中出中文字幕| 欧美性大战久久久久xxx | 久久精品视频16| 婷婷无套内射影院| av免费在线播放网站| 国产a级片免费观看| 在线观看免费视频污| 怡红院av亚洲一区二区三区h| 国产美女三级视频| 91在线视频观看免费| 99热这里只有精品7| 亚洲中文字幕久久精品无码喷水| www亚洲国产| 免费av不卡在线| 成人午夜视频免费在线观看| 好色先生视频污| 亚洲欧美自偷自拍另类| 欧美精品自拍视频| 五月天婷婷影视| 看一级黄色录像| 草草视频在线免费观看| 国产极品在线视频| 久色视频在线播放| 日av中文字幕| 九色porny自拍| 国产一区二区三区播放| 国产 日韩 亚洲 欧美| 激情五月俺来也| 免费看欧美黑人毛片| 国产精品人人妻人人爽人人牛| 午夜免费看视频| 欧洲黄色一级视频| 日本黄色a视频| xx欧美撒尿嘘撒尿xx| 国产中文字幕乱人伦在线观看| 北条麻妃在线观看| 蜜桃视频成人在线观看| 成年人网站大全| 欧美国产激情视频| 亚洲色成人www永久在线观看| 狠狠操狠狠干视频| 男女无套免费视频网站动漫| 精品一区二区成人免费视频| 一区二区三区网址| 国产一二三四在线视频| 亚洲熟女乱色一区二区三区| 欧美xxxx吸乳| 国产在线观看欧美| 免费日韩在线观看| 霍思燕三级露全乳照| 免费一级淫片aaa片毛片a级| 女女百合国产免费网站| 亚洲一级免费在线观看| 国内国产精品天干天干| 色婷婷一区二区三区av免费看| 亚洲欧美日韩一级| 国产嫩草在线观看| 中国黄色片一级| 成人在线观看毛片| 97国产精东麻豆人妻电影| 日韩av资源在线| 手机av在线网站| 国产a级片免费观看| 婷婷视频在线播放| 免费在线观看毛片网站| 黄色a级三级三级三级| 男女私大尺度视频| 午夜精品久久久久久久99热影院| 特级黄色录像片| 久久久久久久久久一区二区| 亚洲啊啊啊啊啊| 999久久久精品视频| 日韩av一二三四| 给我免费播放片在线观看| 丰满少妇在线观看| 777米奇影视第四色| 99热在线这里只有精品| 大陆av在线播放| 亚洲精品久久久久久久蜜桃臀| 日本一本草久p| av不卡在线免费观看| 天天爽夜夜爽一区二区三区| 日韩av三级在线|