MFC中如何畫帶實心箭頭的直線

2022-01-29 15:15:36 字數 919 閱讀 1269

工作中遇到話流程圖的專案,需要畫帶箭頭的直線,經過摸索,解決;思路如下:

(1) 兩個點(p1,p2)確定乙個直線,以直線的乙個端點(假設p2)為原點,設定乙個角度

(2)以p2為原點得到向量p2p1(p),向量p旋轉theta角得到向量p1,向量p旋轉-theta角得到向量p2

(3)伸縮向量至制定長度,平移變數到直線的末端

(4)現在已經有3個點了,畫線就可

具體**如下:

void

cworkflowdlg::drawline(cpoint p1, cpoint p2)

這裡面用到createpolyonrgn這個函式,具體用法如下:

bool crgn::createpolygonrgn(lppoint lppoints, int ncount, int nmode);

[說明]

建立乙個由一系列點圍成的區域。windows在需要時自動將最後點與第一點相連以封閉多邊形

[參數列]

lppoint -------- pointapi,ncount個pointapi結構中的第乙個pointapi結構

ncount --------- long,多邊形的點數

npolyfillmode -- long,描述多邊形填充模式。可為alternate 或 winding常數。npolyfillmode在預設情 況下為alternate;

模式alternate:其從封閉區域中的乙個點向無窮遠處水平畫一條射線,只有當該射線穿越奇數條邊框線時,封閉區域才被填充,如為偶數,則不填充該區域;

模式winding:方法一樣,如為奇數,填充該區域;如為偶數則要根據邊框線的方向來判斷:如果穿過的邊框線在不同方向的邊框線數目相等,則不填充,如不等,則填充。

[返回值]

long,執行成功為建立的區域控制代碼,失敗則為0

iOS(CoreGraphics)畫帶箭頭的框

自己畫帶箭頭的框,需要匯入coregraphics.framwork庫 新建乙個整合uiview 的類,對uiview中的drawrect cgrect rect方法重寫如下。繪圖操作 繪製帶箭頭的矩形 void drawarrowrectangle cgrect frame 重寫繪圖,呼叫剛才繪圖...

MFC中畫直線和曲線

一 畫直線 要想在mfc中畫出有顏色的線條,首先就要設定dc的畫筆,我們可以按如下方法來設定畫筆 第一步 在view類中新增乙個colorref型別的資料成員m color 用來儲存畫筆顏色值 在建構函式中對其初始化,m color rgb 255,0,0 第二步 在wm lbuttondown和w...

flex 畫帶箭頭的線型的方法

flex 畫圖時並沒有直接畫帶箭頭線性的方法。那怎麼畫帶箭頭的線呢?分兩步 1.畫一條線,這個很簡單。2.畫箭頭,這步比較麻煩,因為畫箭頭的時候,線需要旋轉,箭頭也需要跟著旋轉,這樣就需要動態的計算座標。下面是我實現的 package customer 箭頭的大小 public varradius ...