Arc函数使用说明

BOOL Arc(
  HDC hdc,         // handle to device context
  int nLeftRect,   // x-coord of rectangle's upper-left corner
  int nTopRect,    // y-coord of rectangle's upper-left corner
  int nRightRect,  // x-coord of rectangle's lower-right corner
  int nBottomRect, // y-coord of rectangle's lower-right corner
  int nXStartArc,  // x-coord of first radial ending point
  int nYStartArc,  // y-coord of first radial ending point
  int nXEndArc,    // x-coord of second radial ending point
  int nYEndArc     // y-coord of second radial ending point

);


前四个参数表明了  外接矩形

后四个参数表明了弧线的起始位置,

起点是:矩形的中心点(xCenter,yCenter)和点(nXStartArc, nYStartArc)  做一条直线,该直线和椭圆交于一点,该点便是弧线的起点。

终点的计算类似。

弧线的方向默认是逆时针。



部分测试代码

case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		// TODO: 在此添加任意绘图代码...		 

		Rectangle(hdc,91,291,309,109);	
		TextOut(hdc,200,200,TEXT("(200,200)"),lstrlen(TEXT("(200,200)")));

		TextOut(hdc,350,50,TEXT("(300,50)"),lstrlen(TEXT("(300,50)")));

		TextOut(hdc,350,350,TEXT("(350,350)"),lstrlen(TEXT("(350,350)")));

		SelectObject(hdc,(HPEN)CreatePen(PS_SOLID,1,RGB(255,0,0)));

		//画弧线的函数
		Arc(hdc,91,291,309,109,
			350,50,350,350);

		SelectObject(hdc,(HPEN)CreatePen(PS_SOLID,1,RGB(0,0,255)));
		MoveToEx(hdc,200,200,NULL);
		LineTo(hdc,350,50);

		MoveToEx(hdc,200,200,NULL);
		LineTo(hdc,350,350);

		EndPaint(hWnd, &ps);
		break;

测试结果图



红色为弧线。

两个蓝色线段作用 : 截取 起点和终点

坐标(300,50)和(350,350)分别标明了弧线的起点和终点。



Arc与ArcTo的区别在于,Arc函数只是绘出给定的弧线,不会对画笔位置产生影响;而ArcTo函数在工作时将会从画笔原来所在点开始绘制一条直线到弧线的开始点,绘画弧线完成后还会将画笔移动到弧线的终点,从而对画笔位置造成影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值