本例效果图:
DrawArc:绘制一段弧线,它表示由一对坐标、宽度和高度指定的‘椭圆’的一部分。
2010.12.3 我再重新学习了这个,可能格的太长时间没练习了,结果因为在旋转角度那块理解错误,致使外圆的线画出来只有一种颜色,搞的我还以为是D2010的BUG呢,呵呵
var g: TGPGraphics; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); p := TGPPen.Create(MakeColor(255,0,0),2); g.Clear(aclWhite); g.DrawArc(p,11,32,300,200,0,90); {假设有一条从左端到右边的直线,右端为0度,中间为圆心,左端为180度,我让它从0度到90度画一条弧线} p.SetColor(aclCrimson); g.DrawLine(p,11,133,161,133); p.SetColor(MakeColor(0,255,0)); g.DrawArc(p,11,32,300,200,90,90); {我让它从90度开始,再画多90度的一段弧线} p.SetColor(aclDeepPink); g.DrawLine(p,161,133,311,133); p.SetColor(MakeColor(0,0,255)); g.DrawArc(p,11,32,300,200,180,90); {我让它从180度开始,再画多90度的一段弧线} p.SetColor(MakeColor(255,255,0)); g.DrawArc(p,11,32,300,200,270,90); {我让它从270度开始,再画多90度的一段弧线,至此,刚刚一个圆} p.SetColor(MakeColor(0,0,0)); g.DrawArc(p,88,88,200,100,0,360); {如果直接从 0 度开始不间断地延伸 360 度, 就是画椭圆线了} p.Free; g.Free; end;