打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学绘秀曲线图

偶然从 http://blog.csdn.net/hero82748274/archive/2010/02/10/5304386.aspx 看到了秀曲线图, 就用 GDI 模仿了一下; 如果用 GDI+ 绘制, 图形会细腻很多.



procedure TForm1.FormPaint(Sender: TObject);var  i,j,num,X,Y: Integer;begin  num := 60;  X := 300;  Y := 300;  ClientWidth := 2 * X;  ClientHeight := 2 * Y;  Canvas.Pen.Width := 1;  Canvas.Pen.Color := clWhite;  Canvas.Brush.Color := clNavy;  Canvas.FillRect(ClientRect);  for i := 0 to num do for j := 0 to 1 do  begin    Canvas.MoveTo(X, i*10);    if i < 30 then      if j = 0 then Canvas.LineTo(X-i*10, Y) else Canvas.LineTo(X+i*10, Y)    else      if j = 0 then Canvas.LineTo(X-(num-1-i)*10, Y) else Canvas.LineTo(X+(num-1-i)*10, Y);  end;end;



procedure TForm1.FormPaint(Sender: TObject);var  i,j,num,n,X,Y: Integer;  angle: Single;  pts: array of array of TPoint;begin  num := 20;  n := 6; { 改为 n := 11 就是成了下一个图形 }  angle := -2 * PI / n;  X := 210;  Y := 210;  ClientWidth := 2*X;  ClientHeight := 2*Y;  Canvas.Pen.Width := 1;  Canvas.Pen.Color := clWhite;  Canvas.Brush.Color := clNavy;  Canvas.FillRect(ClientRect);  SetLength(pts, n+1, num);  for i := 0 to n do  begin    for j := 0 to num-1 do    begin      pts[i,j] := Point(Trunc(j*10*Cos(angle*i)+X), Trunc(j*10*Sin(angle*i)+Y));      Canvas.MoveTo(pts[i,j].X, pts[i,j].Y);      if i = 0 then        Canvas.LineTo((num-j)*10+X, Y)      else        Canvas.LineTo(pts[i-1, num-1-j].X, pts[i-1, num-1-j].Y);    endend;end;


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Delphi 中if else 的用法
delphi 程序嵌入桌面效果的实现
delphi 遍历treeview某个节点下所有节点的函数
PL/SQL 流程控制语句-条件结构,循环结构
Delphi
Delphi的动画制作技巧
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服