本例效果图:
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;