回 帖 发 新 帖 刷新版面

主题:画弧函数Arc请教

CRect rect(0, 0, 200, 100);
CPoint point1(0, -500);
CPoint point2(-500, 0);
dc.Arc,point1,point2);

那个前3句的坐标怎么定的呀,原点在哪里?谢谢

回复列表 (共1个回复)

沙发

CRect rect(0, 0, 200, 100); 指圆弧(椭圆弧)所在圆(椭圆)的外包矩形框
point1,point2:是指弧实际起点是从绑定矩形中心通过指定开始点的线与椭圆的相交点。弧实际终点是从绑定矩形中心通过指定终点的线与椭圆的相交点。以逆时针方向画弧。

详细见:
CDC::Arc

BOOL Arc(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);
BOOL Arc(LPCRECT lpRect, POINT ptStart, POINT ptEnd);

返回值:函数成功,返回非零值,否则为0。

参数: x1 指定绑定矩形左上角X坐标(逻辑单位)。  
y1 指定绑定矩形左上角Y坐标(逻辑单位)。  
x2 指定绑定矩形右下角X坐标(逻辑单位)。  
y2 指定绑定矩形右下角Y坐标(逻辑单位)。  
x3 指定定义圆弧起点的点的X坐标(逻辑单位)。这个点不一定正好在圆弧上。  
y3 指定定义圆弧起点的点的Y坐标(逻辑单位)。这个点不一定正好在圆弧上。  
x4 指定定义圆弧终点的点的X坐标(逻辑单位)。这个点不一定正好在圆弧上。  
y4 指定定义圆弧终点的点的Y坐标(逻辑单位)。这个点不一定正好在圆弧上。  
lpRect 指定绑定矩形(逻辑单位)。可以对这个参数传递LPRECT或CRect对象。  
ptStart 指定圆弧起点的点的X和Y坐标(逻辑单位)。这个点不一定正好在圆弧上。可以对这个参数传递POINT结构或CPoint对象。  
ptEnd 指定圆弧终点的点的X和Y坐标(逻辑单位)。这个点不一定正好在圆弧上。可以对这个参数传递POINT结构或CPoint对象。  

说明:
画一条椭圆弧。用这个函数画的弧是由指定绑定矩形定义的一段椭圆。弧实际起点是从绑定矩形中心通过指定开始点的线与椭圆的相交点。弧实际终点是从绑定矩形中心通过指定终点的线与椭圆的相交点。以逆时针方向画弧。由于弧不是闭合图形,所以并不填充。矩形的宽度和长度要大于2单位,小于32767单位。

我来回复

您尚未登录,请登录后再回复。点此登录或注册