简单图形编程学习(2)

来源:互联网 发布:基因表达式编程 编辑:程序博客网 时间:2024/06/14 02:33


画弧线和曲线

通过Arc()函数画弧线或整个椭圆。椭圆限定在一个矩形内,称为外接矩形。

Arc()函数的原型说明如下:


在Windows系统中,弧线从开始点到终点的方向是逆时针方向,但可以通过SetArcDirectoin()函数将绘制弧线方向设置为顺时针方向

用Arc()绘制圆,圆弧,椭圆,代码如下:

for (int i =0 ;i<6;i++)
{
pDC->Arc(260-5*i,70-5*i,260+5*i,70+5*i,260+5*i,70,260+5*i,70);
}


for (int i = 3; i<6;i++)
{
pDC->Arc(260-10*i,70-10*i,260+10*i,70+10*i,
              (int)260+10*i*cos(60*3.14/180),
  (int)70+10*i*sin(60*3.14/180),
  (int)260+10*i*cos(60*3.14/180),
  (int)70-10*i*sin(60*3.14/180));


pDC->Arc(260-10*i,70-10*i,260+10*i,70+10*i,
(int)260-10*i*cos(60*3.14/180),
(int)70-10*i*sin(60*3.14/180),
(int)260-10*i*cos(60*3.14/180),
(int)70+10*i*sin(60*3.14/180));
}


效果图:



Bezier曲线 PolyBezier()函数可以画一条或多条Bezier曲线,其函数原型说明如下:



lppt参数是曲线控制顶点所组成的数组,cPoints参数表示lppt数组中顶点数。

如果lppt数组用于画多条Bezier曲线,第二条以后的曲线只需要三个控制点,因为后面的曲线总是把前一条曲线的终点作为自己的起点

示例程序代码如下:

POINT PolyBezier[4]={{20,310},{60,240},{120,300},{160,330}};
pDC->Polyline(PolyBezier,4);
pDC->PolyBezier(PolyBezier,4);

效果图:



画封闭曲线


Rectangle()函数用来画矩形

BOOL CDC::Rectangle(int nLeftRect,int nTopRect,int nRightRect,int nBottomRect);

Ellipse()函数用来画椭圆

BOOL CDC::Ellipse(int nLeftRect,int nTopRect,int nRightRect,int nBottomRect);

RoundRect函数用来画圆角矩形

BOOL CDC::RoundRect(int nLeftRect,int nTopRect,int nRightRect,int nBottomRect,int nWidth,int nHeight);


Polygon()函数用来画封闭的任意多边形

BOOL CDC::Polygon(COUST POINT* lpPoints,int cCount);

其中的参数说明与Polylline函数相同,但两个函数有区别,Polygon函数会自动将起点和终点相连形成封闭的多边形

而Polylline函数则画出多条折线,只有当最后一点和起点相同才画出封闭的多边形


示例代码如下:

pDC->Rectangle(190,270,250,310);
pDC->RoundRect(265,270,330,310,30,20);
pDC->Ellipse(210,170,310,230);
POINT polygonPts[3]={{390,160},{430,220},{350,210}};
pDC->Polygon(polygonPts,3);


效果图如下:



0 0