国产午夜成人免费看片无遮挡_日本免费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>

        一区二区激情视频| 亚洲四区在线观看| 中文字幕不卡一区| 成人综合在线观看| 国产精品视频一二三| 成人app软件下载大全免费| 久久精品一区二区三区四区| 国产精品99久| 亚洲天堂av一区| 欧美视频一区二区在线观看| 日韩精品午夜视频| 26uuu亚洲综合色| 97久久精品人人澡人人爽| 洋洋av久久久久久久一区| 777午夜精品视频在线播放| 国产美女精品在线| 亚洲综合一区二区三区| 精品蜜桃在线看| 国产成人欧美日韩在线电影| 专区另类欧美日韩| 欧美日韩五月天| 国产在线乱码一区二区三区| 伊人色综合久久天天| 欧美不卡一二三| 91麻豆文化传媒在线观看| 日韩成人精品视频| 国产精品欧美久久久久一区二区| 91福利国产成人精品照片| 日本不卡的三区四区五区| 日韩一区在线播放| 日韩精品一区二区三区在线| 91啪亚洲精品| 日韩成人免费在线| 国产精品全国免费观看高清| 精品久久一区二区三区| 99久久99久久精品免费看蜜桃| 麻豆久久久久久久| 亚洲六月丁香色婷婷综合久久| 精品国产一区a| 欧美日免费三级在线| aaa亚洲精品一二三区| 国产在线麻豆精品观看| 亚洲国产精品久久久久婷婷884 | 国产69精品一区二区亚洲孕妇| 图片区小说区国产精品视频| 欧美国产丝袜视频| 亚洲精品在线观看视频| 欧美欧美午夜aⅴ在线观看| 91网站视频在线观看| caoporm超碰国产精品| 国产成人综合视频| 三级欧美在线一区| 日韩国产欧美在线观看| 日韩一区中文字幕| 自拍偷拍国产精品| 国产农村妇女毛片精品久久麻豆| 欧美一级片在线看| 91精品国产91久久久久久最新毛片| 欧美做爰猛烈大尺度电影无法无天| 不卡的av在线| 成人毛片在线观看| www.在线成人| 国产成人综合自拍| 高清不卡一二三区| 成人激情免费电影网址| 国产91综合网| 91麻豆精品秘密| 欧美日韩一级片在线观看| 欧美另类久久久品| 欧美日韩国产精品成人| 欧美精品粉嫩高潮一区二区| 91精品黄色片免费大全| 日韩欧美色综合网站| 国产午夜精品一区二区三区嫩草 | 免费三级欧美电影| 亚洲成国产人片在线观看| 亚洲大片在线观看| 日本欧美久久久久免费播放网| 天天综合网天天综合色| 精品一区二区免费在线观看| 精品一区二区综合| 国产福利一区二区三区视频在线| 成人国产电影网| 色噜噜狠狠色综合中国| 日韩欧美一区电影| 精品久久国产老人久久综合| 国产欧美精品一区二区色综合朱莉| 亚洲国产精品黑人久久久| 中文字幕一区二区日韩精品绯色| 亚洲欧美色一区| 日韩有码一区二区三区| 成人免费视频视频| 99免费精品在线观看| 欧美日韩国产中文| 国产欧美中文在线| 亚洲成人黄色影院| 激情图区综合网| 一本大道综合伊人精品热热| 在线电影一区二区三区| 国产欧美一区二区三区在线老狼| 亚洲国产综合91精品麻豆| 成人在线视频一区二区| 欧美日韩高清在线| 中文字幕一区二区三区四区不卡| 麻豆国产精品777777在线| 91久久国产综合久久| 欧美国产一区二区| 日本在线不卡视频一二三区| 91香蕉视频mp4| 1024成人网| www.亚洲色图| 日本一区二区三区久久久久久久久不 | 欧美激情一区二区三区全黄| 奇米亚洲午夜久久精品| 91福利精品视频| 久久人人爽爽爽人久久久| 亚欧色一区w666天堂| 91色视频在线| 最新中文字幕一区二区三区 | 欧美二区三区91| 一区二区欧美国产| 色综合欧美在线| 亚洲视频一区二区在线| bt欧美亚洲午夜电影天堂| 中文在线免费一区三区高中清不卡| 国内精品国产三级国产a久久| 日韩一区国产二区欧美三区| 日本不卡的三区四区五区| 在线观看91av| 久久成人精品无人区| 日韩免费电影网站| 久久 天天综合| 久久综合九色综合欧美就去吻| 精品亚洲porn| 久久精品亚洲精品国产欧美| 国产91高潮流白浆在线麻豆| 国产精品麻豆久久久| 色综合天天做天天爱| 亚洲动漫第一页| 欧美人xxxx| 激情av综合网| 国产精品二区一区二区aⅴ污介绍| www.视频一区| 亚洲伊人色欲综合网| 91超碰这里只有精品国产| 精品一区二区三区免费毛片爱| 亚洲国产成人一区二区三区| 97se狠狠狠综合亚洲狠狠| 一区二区三区在线免费观看| 欧美日韩亚州综合| 狠狠网亚洲精品| 国产精品成人免费在线| 在线免费亚洲电影| 麻豆久久久久久久| 1区2区3区欧美| 3atv在线一区二区三区| 国产成人在线视频播放| 一区二区三区在线播| 日韩精品一区二区三区老鸭窝 | 色综合久久99| 久久99精品久久久久久国产越南 | 亚洲电影一区二区| 日韩一区二区免费在线电影| 成人v精品蜜桃久久一区| 午夜精品久久久久久久蜜桃app | 亚洲美女在线一区| 欧美一级精品大片| 国产亚洲短视频| 日韩精品一区二区三区中文不卡| 亚洲国产经典视频| 国产精品一区二区在线播放| 久久久久高清精品| 91丨porny丨户外露出| 天天色 色综合| 国产精品网站在线| 欧美精品一卡二卡| 成人精品小蝌蚪| 捆绑紧缚一区二区三区视频| 亚洲精品v日韩精品| 国产欧美一二三区| 精品精品欲导航| 精品视频在线免费| 99久精品国产| 国产69精品久久久久毛片| 日韩av电影免费观看高清完整版 | 国产精品一级二级三级| 亚洲国产日韩在线一区模特| 国产亚洲欧美日韩在线一区| 欧美精品在线一区二区三区| 99麻豆久久久国产精品免费优播| 激情小说亚洲一区| 蜜臀久久99精品久久久画质超高清 | 精品国一区二区三区| 欧美三电影在线| 91福利社在线观看| 在线视频一区二区三区| 99久久精品国产精品久久| 国产河南妇女毛片精品久久久| 久久爱www久久做| 另类欧美日韩国产在线|