关于画图的问题! 问题如下:1:怎样画一个正圆??2:如何画实心的椭圆,长方形?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Ellipse()Rectangle()注意参数就可以满足你的要求 都是在一个矩形框内画的,只要设定左上角跟右下角的坐标就行了,delphi有自带的画图工具 用canvas里面的方法,先设定画布的各项属性canvas.brush.stylecanvas.brush.colorcanvas.pen.colorcanvas.pen.style然后画出来canvas.Ellipse或者canvas.Rectangle或者canvas.Polygon或者用canvas.Lineto裸画 画正圆:已知圆心pa:tpoint,半径为r:integer,侧圆的画法为Ellipse(pa.x-r,pa.y-r,pa.x+r,pa.y+r)画实心椭圆:canvas.pen.style:=pmcopy; //画任意角度的椭圆,cx, cy是圆点位置,a, b是两个轴长,一样就是画圆,rotangel是旋转的角度procedure DrawEllipe(Canvas: TCanvas; cx, cy: integer; a, b: integer; rotangel: real);var angel: integer; ax, bx: real;begin //画中线 Canvas.Brush.Style := bsClear; Canvas.Pen.Style := psDashDotDot; Canvas.MoveTo(cx - Round(a * Cos(rotangel * PI / 180)), cy + Round(a * Sin((rotangel) * PI / 180))); Canvas.LineTo(cx + Round(a * Cos(rotangel * PI / 180)), cy - Round(a * Sin((rotangel) * PI / 180))); //画椭圆 Canvas.Pen.Style := psSolid; for angel := 0 to 360 do begin ax := a * Cos(angel * PI / 180) * Cos(rotangel * PI / 180) - b * Sin(angel * PI / 180) * Sin(rotangel * PI / 180); bx := a * Cos(angel * PI / 180) * Sin(rotangel * PI / 180) + b * Sin(angel * PI / 180) * Cos(rotangel * PI / 180); Canvas.LineTo(cx + Round(ax), cy - Round(bx)); end;end; 我想要在界面设计上加深一下自己的能力...谁能给我点建议呢~!!! Delphi 报表/打印应用 请问DBLJ.DB是一个什么类型的表,是缺省表吗 ADO补丁 在一个只有procedure 的单元中要使用tdatabase控件,该怎么办? 如何实现这个语句? 50分相求Delphi5.0 EE 的序列码 各位大峡,用delphi做一个基于asp的打印报表组件如何实现呢?大家给点意见。 在delphi中如何调用带返回参数存储过程? 您好,请教sql问题及托盘程序。 这个怎么做?救急! 能不能给我也发一份fastreport和中文帮助啊
Rectangle()注意参数就可以满足你的要求
canvas.brush.color
canvas.pen.color
canvas.pen.style
然后画出来
canvas.Ellipse
或者canvas.Rectangle
或者canvas.Polygon
或者用canvas.Lineto裸画
画实心椭圆:canvas.pen.style:=pmcopy;
procedure DrawEllipe(Canvas: TCanvas; cx, cy: integer; a, b: integer; rotangel: real);
var
angel: integer;
ax, bx: real;
begin
//画中线
Canvas.Brush.Style := bsClear;
Canvas.Pen.Style := psDashDotDot;
Canvas.MoveTo(cx - Round(a * Cos(rotangel * PI / 180)), cy + Round(a * Sin((rotangel) * PI / 180)));
Canvas.LineTo(cx + Round(a * Cos(rotangel * PI / 180)), cy - Round(a * Sin((rotangel) * PI / 180)));
//画椭圆
Canvas.Pen.Style := psSolid;
for angel := 0 to 360 do
begin
ax := a * Cos(angel * PI / 180) * Cos(rotangel * PI / 180) - b * Sin(angel * PI / 180) * Sin(rotangel * PI / 180);
bx := a * Cos(angel * PI / 180) * Sin(rotangel * PI / 180) + b * Sin(angel * PI / 180) * Cos(rotangel * PI / 180);
Canvas.LineTo(cx + Round(ax), cy - Round(bx));
end;
end;