文档章节

Delphi 的绘图功能[4] - 圆弧类图形

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 300
阅读 3
收藏 0
点赞 0
评论 0
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  btn: TButton;
const
  y1 = 10;
  y2 = 80;


{先设置画笔画刷}
procedure TForm1.FormCreate(Sender: TObject);
begin
  Canvas.Pen.Width := 2;
  Canvas.Pen.Color := clRed;
  Canvas.Brush.Color := clWhite;
end;


{绘制椭圆; 椭圆的参数和矩形是一样的}
procedure TForm1.Button1Click(Sender: TObject);
begin
  btn := TButton(Sender);
  Canvas.Ellipse(btn.Left, y1, btn.Left+btn.Width, y2);
end;


{根据矩形结构绘制椭圆}
procedure TForm1.Button2Click(Sender: TObject);
var
  R: TRect; {定义一个矩形结构}
begin
  btn := TButton(Sender);
  R := Rect(btn.Left, y1, btn.Left+btn.Width, y2);
  Canvas.Ellipse(R);
end;


{绘制扇形}
procedure TForm1.Button3Click(Sender: TObject);
begin
  btn := TButton(Sender);
  Canvas.Pie(
    btn.Left, y1,                             {矩形区域左上角}
    btn.Left + btn.Width, y2,                 {矩形区域右下角}
    btn.Left + btn.Width, y1 + (y2-y1) div 2, {扇形起点}
    btn.Left + btn.Width div 2, y1            {扇形终点}
  );
end;


{绘制弦, 参数同上}
procedure TForm1.Button4Click(Sender: TObject);
begin
  btn := TButton(Sender);
  Canvas.Chord(
    btn.Left, y1,
    btn.Left + btn.Width, y2,
    btn.Left + btn.Width, y1 + (y2-y1) div 2,
    btn.Left + btn.Width div 2, y1
  );
end;


{绘制弧线, 参数同上}
procedure TForm1.Button5Click(Sender: TObject);
begin
  btn := TButton(Sender);
  Canvas.Arc(
    btn.Left, y1,
    btn.Left + btn.Width, y2,
    btn.Left + btn.Width, y1 + (y2-y1) div 2,
    btn.Left + btn.Width div 2, y1
  );
end;

end.

 
 
 
 
 

 

 

  
//效果图:


本文转载自:http://www.cnblogs.com/del/archive/2008/02/16/1070942.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
机械制图基础知识,莫莫总结的精华全在这里了!

     一、常用绘图工具   1.图板 图板是用来固定图纸的矩形木板。其要求:   (1)板面平整、光滑;   (2)左侧的“导边”应平直。   #常用图板规格:   0号(900mm×1200m...

UG数控编程 ⋅ 06/03 ⋅ 0

VC橡皮筋绘制技术的实现

在我们在使用微软的绘图程序时。当要画一条直线,先用鼠标确定起始位置,然后鼠标在屏幕上来回移动时,我们会发现,这条直线就像橡皮筋一样,随着鼠标在屏幕中的位置,长短和终点都随之变化。...

长平狐 ⋅ 2013/12/25 ⋅ 0

HTML5中Canvas元素的使用总结

HTML5中Canvas元素的使用总结 Canvas提供了开发者自定义绘图的接口,我们可以公国getContext()函数来获取绘图上下文进行绘制操作,这个函数中可以传入两个参数,其中第1个参数设置绘图上下文...

珲少 ⋅ 04/16 ⋅ 0

Android:视图绘制(三) ------Path介绍

Path 顾名思义是路径的意思。前文我们讲过Canvas提供了很多方法来绘制各种图形。但是,有时我们的需求不是常规的图形,那么就需要用到本文要讲的Path类。 Canvas里提供了一个drawPath(Path p...

u010635353 ⋅ 2016/09/22 ⋅ 0

CDC绘图总结

GDI总结:http://dingchaoqun12.blog.163.com/blog/static/11606250420112213396361/ 对话框 控件 视图类 应用程序框架都会调用该CWnd的消息响应成员函数(的覆盖)来绘制窗口客户区。 在Win...

长平狐 ⋅ 2012/10/08 ⋅ 0

这款化学绘图工具“撩”走了妹的心!

看了《太阳的后裔》觉得隔着屏幕都被仲基偶吧“撩”得一手好妹,乔妹竟然还在犹豫,这个剧情不合理我选择拒绝接受!最近工作原因经常要用到化学绘图工具,在众多软件中只被这款化学软件“撩”...

学术研究软件 ⋅ 2016/04/08 ⋅ 0

Quartz2D绘图引擎

功能:绘制图形 图形上下文的作用: 保存绘图信息、绘图状态 自定义UI控件的步骤 新建一个类,继承自UIView 实现- (void)drawRect:(CGRect)rect方法,然后在这个方法中,可以: 取得跟当前vie...

细雨微风轻诉流年 ⋅ 2016/08/24 ⋅ 0

iOS BeizierPath 绘图

iOS BeizierPath 绘图 最近工作,因为是一款理财的产品,所以进度条改成圆,当然也参考了几篇优秀的博文,稍后一一罗列,下面简单介绍:使用UIBezierPath类可以创建基于矢量的路径,这个类在UIKit...

GLAlanTong ⋅ 2016/03/27 ⋅ 0

疯狂ios讲义之使用路径

正如前面提到的,Quartz 2D只提供了绘制矩形、椭圆的函数,并没有直接提供绘制圆角矩形、三角形等几何图形的函数。为了绘制更复杂的图形,必须启用路径。 表12.4列出了Quartz 2D为创建路径提...

博文视点 ⋅ 2014/01/29 ⋅ 0

结合 GFX,DnD 与 Dijit 创建基于 Dojo 的 Web 图形类应用

GFX(dojox.gfx)作为 Dojo 扩展组件之一,封装了底层浏览器中实际的图形引擎,使开发人员具备了 Web 绘图的基本能力,是此类应用的基础。同时,作为 Dojo 核心组件的 DnD(dojo.dnd),则实...

红薯 ⋅ 2010/08/08 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何优雅的编程——C语言界面的一点小建议

我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以...

柳猫 ⋅ 29分钟前 ⋅ 0

从零手写 IOC容器

概述 IOC (Inversion of Control) 控制反转。熟悉Spring的应该都知道。那么具体是怎么实现的呢?下面我们通过一个例子说明。 1. Component注解定义 package cn.com.qunar.annotation;impo...

轨迹_ ⋅ 29分钟前 ⋅ 0

系统健康检查利器-Spring Boot-Actuator

前言 实例由于出现故障、部署或自动缩放的情况,会进行持续启动、重新启动或停止操作。它可能导致它们暂时或永久不可用。为避免问题,您的负载均衡器应该从路由中跳过不健康的实例,因为它们...

harries ⋅ 31分钟前 ⋅ 0

手把手教你搭建vue-cli脚手架-详细步骤图文解析[vue入门]

写在前面: 使用 vue-cli 可以快速创建 vue 项目,vue-cli很好用,但是在最初搭建环境安装vue-cli及相关内容的时候,对一些人来说是很头疼的一件事情,本人在搭建vue-cli的项目环境的时候也是...

韦姣敏 ⋅ 41分钟前 ⋅ 0

12c rman中输入sql命令

12c之前版本,要在rman中执行sql语句,必须使用sql "alter system switch logfile"; 而在12c版本中,可以支持大量的sql语句了: 比如: C:\Users\zhengquan>rman target / 恢复管理器: Release 1...

tututu_jiang ⋅ 55分钟前 ⋅ 0

Nginx的https配置记录以及http强制跳转到https的方法梳理

Nginx的https配置记录以及http强制跳转到https的方法梳理 一、Nginx安装(略) 安装的时候需要注意加上 --with-httpsslmodule,因为httpsslmodule不属于Nginx的基本模块。 Nginx安装方法: ...

Yomut ⋅ 今天 ⋅ 0

SpringCloud Feign 传递复杂参数对象需要注意的地方

1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用...

@林文龙 ⋅ 今天 ⋅ 0

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 今天 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 今天 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部