国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

完成以復雜線條為基礎的圖形繪圖

完成以復雜線條為基礎的圖形繪圖

更新時間:2022-05-04 文章作者:未知 信息來源:網絡 閱讀次數:

郎銳

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

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

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        成人在线视频一区| 精品国产人成亚洲区| 亚洲免费观看高清完整版在线观看熊 | 日韩av二区在线播放| 国产精品久久久久久久蜜臀| 精品久久五月天| 欧美日韩一区久久| 在线视频国产一区| 色狠狠一区二区| 欧美中文一区二区三区| 欧美在线观看视频一区二区| 欧美中文字幕一区二区三区亚洲| 99re热视频精品| 91亚洲国产成人精品一区二三| 成人理论电影网| 99精品久久只有精品| 9久草视频在线视频精品| 丁香另类激情小说| av在线不卡免费看| 91视频你懂的| 色综合久久66| 欧美三级视频在线观看| 欧美午夜电影在线播放| 欧美人与z0zoxxxx视频| 91精品国产综合久久蜜臀| 精品视频全国免费看| 欧美亚洲禁片免费| 3d动漫精品啪啪1区2区免费| 精品日韩在线观看| 久久久精品人体av艺术| 国产日韩av一区二区| 国产精品久久一卡二卡| 樱桃视频在线观看一区| 亚洲韩国一区二区三区| 人人狠狠综合久久亚洲| 成人激情文学综合网| 色噜噜夜夜夜综合网| 3d动漫精品啪啪一区二区竹菊| 精品国产一区久久| 亚洲欧美激情插| 免费在线成人网| 成人激情免费网站| 777午夜精品免费视频| 久久精品男人天堂av| 亚洲精品成人少妇| 国产在线精品免费| 色婷婷av久久久久久久| 精品久久国产老人久久综合| 国产精品久久久久久久午夜片| 午夜欧美2019年伦理| 国产成人av自拍| 欧美精品久久久久久久多人混战 | 欧美精品vⅰdeose4hd| 久久亚洲一级片| 亚洲精品午夜久久久| 精品亚洲国内自在自线福利| 91免费国产在线| 日韩精品中文字幕一区二区三区| 亚洲图片你懂的| 国产剧情av麻豆香蕉精品| 欧美美女bb生活片| 综合久久久久久久| 激情综合亚洲精品| 欧美一区二区三区的| 亚洲欧美日韩中文播放| 国产高清亚洲一区| 精品久久人人做人人爰| 性欧美疯狂xxxxbbbb| 成人av资源在线| 久久无码av三级| 男女男精品网站| 欧美精品一卡两卡| 一区二区三区资源| 成人av影视在线观看| 久久无码av三级| 久久99精品久久只有精品| 欧美日韩视频在线第一区 | 久久精品国产一区二区| 欧美日韩一区二区电影| 亚洲欧洲日韩女同| 不卡的电视剧免费网站有什么| 日韩精品中文字幕在线不卡尤物| 午夜亚洲国产au精品一区二区| 91麻豆国产自产在线观看| 国产精品久久久久久久久免费桃花 | 成人av网址在线| 国产精品私房写真福利视频| 精品伊人久久久久7777人| 日韩欧美高清dvd碟片| 毛片av一区二区| 91精品国产一区二区| 午夜影院久久久| 欧美精品色一区二区三区| 日韩精品一二三| 91精品国产综合久久久久久| 日韩影院免费视频| 日韩欧美不卡在线观看视频| 另类小说欧美激情| 久久亚洲春色中文字幕久久久| 国产真实精品久久二三区| 国产日韩三级在线| 91尤物视频在线观看| 亚洲影视在线观看| 欧美日韩国产三级| 麻豆一区二区三| 国产亚洲成aⅴ人片在线观看 | 欧美色手机在线观看| 一区二区三区在线免费视频 | 91麻豆精品国产91| 日本成人在线网站| 久久久久久久国产精品影院| eeuss鲁片一区二区三区在线看| 亚洲精品中文字幕乱码三区 | 欧美性大战久久久久久久| 亚洲成在线观看| 日韩精品中文字幕一区| 国产精品 欧美精品| 国产精品国产三级国产普通话蜜臀| 91麻豆精东视频| 精品在线免费视频| 亚洲色图在线看| 91精品蜜臀在线一区尤物| 国产精品中文字幕欧美| 亚洲精品国产一区二区三区四区在线| 欧美另类久久久品| 成人动漫视频在线| 免费成人在线观看| 亚洲视频资源在线| 日韩欧美国产综合一区 | 国产综合色精品一区二区三区| 中文字幕免费不卡| 91麻豆精品国产91久久久| av男人天堂一区| 美女看a上一区| 一区二区三区不卡视频在线观看 | 国产精品一区二区91| 一区二区三区高清不卡| 精品播放一区二区| 欧美视频第二页| 精品一区二区三区免费播放 | 国产人成亚洲第一网站在线播放| 欧美国产欧美综合| 欧美日韩午夜在线| 成人午夜在线播放| 青青青伊人色综合久久| 自拍偷拍欧美精品| 久久久久久综合| 欧美日韩激情在线| 91视频在线观看免费| 国产盗摄精品一区二区三区在线 | 久久精品国产免费| 一区二区三区日韩精品| 国产精品天干天干在线综合| 日韩精品一区二区三区四区| 欧美午夜在线一二页| 成人av电影在线| 国产高清精品久久久久| 久久国产人妖系列| 秋霞电影网一区二区| 亚洲v中文字幕| 一区二区三区四区中文字幕| 国产精品不卡一区| 国产精品久久久久一区二区三区| www国产亚洲精品久久麻豆| 日韩一区二区三区视频| 欧美高清激情brazzers| 欧美日韩三级在线| 欧美日韩国产三级| 欧美日韩视频在线观看一区二区三区 | 在线视频你懂得一区| 丰满岳乱妇一区二区三区| www.成人在线| 亚洲精品成a人| 精品对白一区国产伦| 成人av第一页| 美女爽到高潮91| 18成人在线观看| 欧美一区二区免费| 91色综合久久久久婷婷| 久久精品国产第一区二区三区| 日韩一区在线看| 日韩一二三四区| 欧美在线观看18| av不卡在线播放| 国产黄人亚洲片| 久久精品噜噜噜成人av农村| 国产精品动漫网站| 欧美精品一区二区蜜臀亚洲| 欧美性感一类影片在线播放| 国产成人激情av| 精品制服美女久久| 亚洲一区二区三区中文字幕在线| 欧美经典一区二区| 欧美一区二区在线看| 色婷婷激情久久| 97久久精品人人做人人爽| 国产91精品露脸国语对白| 久久激情五月婷婷| 日本人妖一区二区| 五月婷婷另类国产|