Windows程式設計 直線繪製

2021-08-13 05:17:44 字數 2281 閱讀 3067

windiows程式設計中繪製直線的重要函式:

moveto()函式:線段的起點位置

lineto():線段的終點位置

引數如下:

bool movetoex(

_in_ hdc hdc, //視窗控制代碼

_in_ int x, //畫素x座標

_in_ int y, //畫素y座標

_out_ lppoint lppoint //傳入之前的座標點

);

繪製直線方法如下:

movetoex(hdc, 100, 100, null);   //線段起始座標

lineto(hdc, 200, 100); //線段終止座標

繪製乙個正方形

movetoex(hdc, 100, 100, null);

lineto(hdc, 200, 100);

lineto(hdc, 200, 200);

lineto(hdc, 100, 200);

lineto(hdc, 100, 100);

**的繪製:

getclientrect(hwnd, &rect);

for (int i = 0; i <= rect.right; i += 100)

for (int j = 0; j <= rect.bottom; j += 100)

效果如下:

point結構體(用來標記窗體上的乙個畫素點):

typedef struct tagpoint

point, *ppoint, near *nppoint, far *lppoint;

具體使用案例:畫正方形

vpoint apt[5] = ;

movetoex(hdc, apt[0].x, apt[0].y, null);

for (int i = 1; i < 5; ++i)

lineto(hdc, apt[i].x, apt[i].y);

polyline函式:

根據所給的一些列座標點畫圖

bool polyline(

_in_ hdc hdc,

_in_ const point *lppt, //point結構陣列

_in_ int cpoints //畫素點的個數

);

使用案例 畫乙個正方形:

polyline函式和polylineto函式的區別:

polyline函式繪製圖形後不會移動畫筆位置

polylineto函式在繪製圖形後會移動畫筆位置

繪製三角函式:

首先設定窗體邊框大小

static int cxclient;

static int cyclient;

case wm_size: break;
然後進行繪製

//畫三角函式

//繪製座標軸

movetoex(hdc, 0, cyclient/2, null);

lineto(hdc, cxclient, cyclient / 2);

point apt2[pointnums];

for (int i = 0; i < pointnums; ++i)

polyline(hdc, apt2, pointnums);

原理:設定位於三角函式上的n對座標,然後利用polyline函式把座標連起來

直線繪製演算法

點在計算機中是組成圖形的最基本元素,我們幾何基本圖形的繪製是乙個個畫素點按照一定規則排列而成的組成的。而複雜的圖形是有基本幾何圖形組成的。所以基本圖形的繪製演算法,是學習計算機圖形學的基礎和關鍵。基本圖形包括 直線,矩形,三角形 直線是圖形中最常見的,在解析幾何中,二維座標系中的直線的表示式是 y ...

Canvas 繪製直線

1.canvas繪圖是一種基於狀態的繪圖,繪圖的過程應該是先設定繪圖的狀態,再呼叫具體的函式進行繪製。例如繪製一條 100,100 到 700,700 的直線 context.moveto 100,100 設定起點狀態 context.lineto 700,700 設定末端狀態 context.li...

matplotlib繪製等直線

利用contour contourf 描繪等值線 contourf 帶有填充效果 def fig2 y,x np.ogrid 2 2 200j,3 3 300j z x np.exp x 2 y 2 extent np.min x np.max x np.min y np.max y plt.fig...