简单图形编程学习(2)


画弧线和曲线

通过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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值