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轴逆时针起始角度数确定,弧终点由测量起点逆时针扫描角度数确定。圆弧为沿给定半径和圆心的圆周,圆弧长度由起始和扫描角度定义。