我正在尝试使用Delphi 7
和Canvas
绘制一个简单的圆圈,我怀疑我想做什么是可能的。
如下图所示,我想绘制一个没有核心/中心的圆圈:
有杰里道奇的建议:
使用的代码:
Canvas.Brush.Style := bsClear;
Canvas.Pen.Style := psSolid;
Canvas.Pen.Color := clGreen;
Canvas.Pen.Width := 20;
Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
旧信息:
背景图片是一个简单的TImage
组件,我使用此命令绘制圆圈:
Canvas.Brush.Color := clgreen;
Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
有可能吗?
在Tom Brunberg和Jerry Dodge的帮助下解决了!
结果:
感谢您的帮助!
答案 0 :(得分:3)
我可以想到几种方法来做到这一点,但最简单的方法是使用没有填充的大笔宽。例如......
Canvas.Brush.Style := bsClear;
Canvas.Pen.Style := psSolid;
Canvas.Pen.Color := clGreen;
Canvas.Pen.Width := 50;
Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4);
但是,在你的情况下,Pie
不是正确的方法,因为它也会在中间留下线条。您必须使用Arc
代替。
答案 1 :(得分:0)
这是例程:
procedure SetCircle(centerRadius,CenterAngle:real; r:integer);
{Draw a circle centered at CenterRadius, CenterAngle from image center,
radius of circle drawn is r}
var x,y:integer;
begin
with cfrm.canvas do begin
x:=trunc(midx+CenterRadius*cos(CenterAngle));
y:=trunc(midy+CenterRadius*sin(CenterAngle));
ellipse(x-r,y-r,x+r,y+r);
cfrm.canvas.brush.color:=clyellow;
end;
end;