文档章节

学绘秀曲线图

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 272
阅读 18
收藏 0

偶然从 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);
    end;
  end;
end;

 
 
 
 
 

 

 

  



本文转载自:http://www.cnblogs.com/del/archive/2010/02/10/1667347.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
中学成绩查询分析系统--phpcj

一个用于中学的成绩查询及分析系统,php+mysql 制作 基本功能: 查询学生的历次考试成绩,并显示名次变化曲线图; 自动统计平均分、及格率、优秀率、最高分、最低分、最优生、学困生等,还可...

石家庄清风
2011/02/07
6.8K
1
如何快乐的学英语?

英语,对于我们很多人来说就像是“最熟悉的陌生人”。从小学到大学,英语这门课程伴随了十多年时间,但每次见到外国人时就深深感到词到用时方恨少, 各种尴尬时刻总是不期而至。 举个栗子 有...

cathyli
2016/07/06
31
0
美图吴欣鸿预测未来十年趋势 AI 技术占一半

5月18日,美图公司在北京举办“美图秀秀十年分享派对”。美图公司创始人兼CEO吴欣鸿提出了美与社交的战略布局,并预测了图片影像领域十大趋势。 吴欣鸿首先回顾了美图秀秀十年历程—— 2008...

技术小能手
05/21
0
0
室内设计要学哪些内容?要学哪些软件?

第一部分 学习室内设计理论基础知识 第二部分 学习平面彩色图绘制 第三部分 学习室内施工图绘制 一、专业课程 室内设计原理、人体工程学、识图与制图、装饰材料与施工工艺、装饰设备与工程实...

mymay2
06/02
0
0
请教一个关于echarts Line 曲线的问题,不知道能不能解决我的需求

需求很简单,有个Line的曲线图,我想得到绘制这个曲线图的函数方程,请问可以得到吗?

庆锅锅
08/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python:关于读取文件的指定行的问题

先来造一个文件:就叫做 test.txt吧,内容是下面这个样子: 表头1,数据12,数据23,数据34,数据45,数据56,数据67,数据7 那么我们并不打算把这个表头给读出来 怎么办呢? 先来打开文...

Oh_really
16分钟前
1
0
Rails 用现代 Rails 逃离单页面应用 “兔子洞”

在工作共总是觉得turbolinks非常爽,但是却总是被说成是过时的技术,大家都喜欢spa,哪怕不用的spa的人也是禁用掉的多,找不到很好的理由劝说别人使用,这篇文章说的很到位,或者说至少是牛人...

wmzsonic
21分钟前
0
0
Hive 分布式搭建,Spark集成Hive记录

本帖详细介绍搭建步骤,仅仅记录自己搭建过程以及采坑经历。 前提环境: Hadoop集群 版本2.7.2 Spark集群 版本2.1.0 Linux版本 Centos7 准备搭建 MySql版本5.5.61 ,Hive-2.1.0 去官网下载M...

我爱春天的毛毛雨
23分钟前
2
0
打包QML程序

1、windeployqt执行路径(D:\Qt\5.12.0\msvc2017_64\bin)加入到PATH中 2、使用Qt自带的命令行交互 Command 终端(Qt 5.12.0 64-bit for Desktop (MSVC 2017))切换到 Release 编译成功的exe...

渣渣曦
今天
4
0
优秀互联网高级测试工程师应该具备的能力

概述 在之前写的互联网高级测试工程师至少具备的能力一文中,提到了测试工程师至少具备的能力,但是并没有提到优秀测试工程师应该具备的能力,下文简单的谈一谈。当然这些全部都是我的个人理...

Sam哥哥聊技术
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部