Với thuật toán hình vuông này rất đơn giản khi bạn đã biết cách vẽ đường thằng.
Khi bạn đã đọc qua bài viết vẽ đường thằng thì bạn chỉ cần vẽ 4 đường thằng (2 đường thằng dọc, 2 đường thằng ngang) với 2 tọa độ cho trước. yêu cầu 2 tọa độ đó phải nằm chéo góc, đối xứng nhau.
// ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "TPaint.h" #include "Rectangle.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CRectangle::CRectangle() { } CRectangle::~CRectangle() { } CRectangle::CRectangle(CPoint p1, CPoint p2, int width, COLORREF color) { pos1=p1; pos2=p2; iType = 0; iWidth=width; Bcolor=color; } void CRectangle::MouseMove(CPoint p) { pos2=p; } void CRectangle::Draw(CDC *pDC) { int x1,y1,x2,y2; x1=pos1.x; x2=pos2.x; y1=pos1.y; y2=pos2.y; int x,y,mX,mY; x=min(x1,x2); y=min(y1,y2); mX=max(x1,x2); mY=max(y1,y2); //ve 2 duong ngang for ( ; x<=mX; x++) { DrawPixel(pDC,x,y1); DrawPixel(pDC,x,y2); } //ve 2 duong doc for ( ; y<=mY; y++) { DrawPixel(pDC,x1,y); DrawPixel(pDC,x2,y); } }