VC++之图形设备接口之CDC类之画弧函数及相关结构


CDC::Arc
        画一条椭圆弧。以逆时针方向画弧。弧实际起点为绑定矩形中心过指定始点的线与椭圆的相交点,实际终点从绑定矩形中心过指定终点的线与椭圆的相交点。矩形宽度和长度为2~32767单位。
CDC::ArcTo
        画一条椭圆弧。除了更新当前点外,这个函数与CDC::Arc类似。弧起始于与其绑定矩形中心到(x3,y3)的放射线相交点,结束于与其绑定矩形中心到(x4,y4)的放射线相交点。与CDC::MoveTo联合使用。
CDC::AngleArc
        画线段和弧。当前位置移到圆弧末端。线段从当前点到圆弧。圆弧是沿给定半径和圆心的圆周。圆弧长度由给定起始和扫描角度定义。与CDC::MoveTo联合使用。
CDC::Chord
        绘制弦(椭圆、线段相交形成的闭合图形)。弦可扩充到不包括右边和底部坐标之弧线,弦用指定画笔绘制和画刷填充。

 

        一、POINT结构定义:
                POINT数据结构具有如下形式:
                typedef struct tagPOINT
                {
                   LONG x;     //点的x坐标
                   LONG y;     //点的y坐标
                }  POINT;

        二、RECT结构定义:
                typedef struct tagRECT
                {
                  LONG left;           //矩形的左上角的x坐标
                  LONG top;          //矩形的左上角的y坐标
                  LONG right;        //矩形的右下角的x坐标
                  LONG bottom;    //矩形的右下角的y坐标
                }  RECT;

        三、CDC::SetArcDirection()函数声明
        int SetArcDirection(int nArcDirection);
        返回值:如果成功,则返回弧的方向,否则为0。
        参数: nArcDirection 指定新的弧方向,为下列值之一: 
                                                 · AD_COUNTERCLOCKWISE 图形按逆时针方向绘制。  
                                                 · AD_CLOCKWISE 图形按顺时针方向绘制。  
        说明:设置矩形、弧函数的绘制方向。缺省方向是逆时针。

       四、 CDC::GetArcDirection()函数声明
        int GetArcDirection() const;

        返回值:如果出错,则返回0。如果成功,则指定当前的弧的方向。
                函数返回返回值为: 
                                    · AD_COUNTERCLOCKWISE 弧与矩形按逆时针方向绘制。  
                                    · AD_CLOCKWISE 弧与矩形按顺时针方向绘制。  
        说明:为设备上下文获取当前弧的方向,由弧与矩形函数使用。

        五、CDC::MoveTo()函数声明
                CPoint MoveTo(
                int x ,           //新位置的X逻辑坐标
                int y             //新位置的Y逻辑坐标
                );
               CDC::MoveTo()函数声明
                CPoint MoveTo(
                POINT point    //新位置,可为参数传递POINT结构或CPoint对象
                );
        返回值:返回CPoint 对象的X和Y坐标的前一次取值。

        六、CDC::Arc()函数声明
        BOOL Arc(
                int x1,  //绑定矩形左上角X坐标(逻辑单位)
                int y1,  //绑定矩形左上角Y坐标(逻辑单位)
                int x2,  //绑定矩形右下角X坐标(逻辑单位)
                int y2,  //绑定矩形右下角Y坐标(逻辑单位)
                int x3,  //定义圆弧起点的X坐标(逻辑单位),该点可不在圆弧上
                int y3,  //定义圆弧起点的Y坐标(逻辑单位),该点可不在圆弧上
                int x4,  //定义圆弧终点的X坐标(逻辑单位),该点可不在圆弧上
                int y4   //定义圆弧终点的Y坐标(逻辑单位),该点可不在圆弧上
                );                              http://hi.baidu.com/_ynbg/blog/item/b68ace2b72ec4c235243c1cc.html
        BOOL Arc(
           LPCRECT lpRect, //绑定矩形(逻辑单位)。可对该参数传递LPRECT或CRect对象
           POINT ptStart,        //圆弧起点X和Y坐标(逻辑单位),该点可不在圆弧上,可对该参数传递POINT结构或CPoint对象
           POINT ptEnd          //圆弧终点X和Y坐标(逻辑单位),该点可不在圆弧上,可对该参数传递POINT结构或CPoint对象
        );
        函数成功,返回非零值,否则为0。
        七、CDC::Chord()函数声明
        BOOL Chord(
                int x1,  //弦绑定矩形左上角X坐标(逻辑单位)
                int y1,  //弦绑定矩形左上角Y坐标(逻辑单位)
                int x2,  //弦绑定矩形右下角X坐标(逻辑单位)
                int y2,  //弦绑定矩形右下角Y坐标(逻辑单位)
                int x3,  //弦起点X坐标(逻辑单位),截取椭圆的直线端点X坐标
                int y3,  //弦起点Y坐标(逻辑单位),截取椭圆直线的端点Y坐标
                int x4,  //弦终点X逻辑坐标,截取椭圆直线的端点X坐标
                int y4   //弦终点Y逻辑坐标,截取椭圆直线的端点Y坐标
                );
        BOOL Chord(
                LPCRECT lpRect,  //指定范围内的矩形(逻辑单位),可以为该参数传递LPRECT或CRect对象
                POINT ptStart,         //弦起点X和Y逻辑坐标,该点不必在弦上,可为该参数传递POINT结构或CPoint对象
                POINT ptEnd           //弦终点X和Y逻辑坐标,该点不必在弦上,可为该参数传递POINT结构或CPoint对象
                );
        返回值:函数成功,返回非零值,否则为0。
        说明:图形高度为y2-y1,宽度为x2-x1。

        八、CDC::ArcTo()函数声明:
        BOOL ArcTO(
                int x1,  //绑定矩形左上角X坐标(逻辑单位
                int y1,  //绑定矩形左上角Y坐标(逻辑单位
                int x2,  //绑定矩形右下角X坐标(逻辑单位)
                int y2,  //绑定矩形右下角Y坐标(逻辑单位)
                int x3,  //定义圆弧起点X坐标(逻辑单位),该点可不在圆弧上。
                int y3,  //定义圆弧起点Y坐标(逻辑单位),该点可不在圆弧上
                int x4,  //定义圆弧终点X坐标(逻辑单位),该点可不在圆弧上
                int y4   //定义圆弧终点Y坐标(逻辑单位),该点可不在圆弧上
                );
        BOOL ArcTo(
             LPCRECT lpRect, //绑定矩形(逻辑单位),可对该参数传递RECT数据结构或CRect对象
             POINT ptStart,      //圆弧起点X和Y坐标(逻辑单位),该点可不在圆弧上,可对该参数传递POINT结构或CPoint对象
             POINT ptEnd        //圆弧终点X和Y坐标(逻辑单位),该点可不在圆弧上,可对该参数传递POINT结构或CPoint对象
                );
        返回值:函数成功,返回非零值,否则为0。
        说明:
                除更新当前点外,与CDC::Arc类似。从当前位置到弧起始点画一条直线,弧起始于绑定矩形中心到(x3,y3)放射线相交点沿逆时针(缺省弧方向)延伸,结束于绑定矩形中心到(x4,y4)的放射线相交点。

        九、CDC::AngleArc()函数声明:
                BOOL AngleArc(
                int x,                          //圆心逻辑X坐标
                int y,                          //圆心逻辑Y坐标
                int nRadius,             //以逻辑单位指定圆半径,是个正数
                float fSartAngle,      //以弧度计相对于X轴的开始角度
                float fSweepAngle  //以弧度计相对于开始角度的扫描角度
                );
        返回值:函数成功,返回非零值,否则为0。
        说明:
               画线段和弧,线段从当前点到圆弧,接着将当前位置移到圆弧末,弧起点由测量圆圈X轴逆时针起始角度数确定,弧终点由测量起点逆时针扫描角度数确定。圆弧为沿给定半径和圆心的圆周,圆弧长度由起始和扫描角度定义。


你可能感兴趣的:(VC++之图形设备接口之CDC类之画弧函数及相关结构)