zoukankan      html  css  js  c++  java
  • Delphi 的绘图功能[4] 圆弧类图形

    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.
    
    //效果图:


  • 相关阅读:
    python 网络编程 socket模块中的常用方法
    python 网络编程 主要是黏包 三种解决方案
    python 网络编程 tcp/dcp 通信 和 时间同步机制
    python 网络编程 计算机部分基础 和初识tcp和udp
    python 包和模块
    python 包和模块 有固定的包格式自己注意
    Jquery常用的一些事件 keyup focus
    常规的页面布局
    校验输入正整数
    遍历input文本框
  • 原文地址:https://www.cnblogs.com/del/p/1070942.html
Copyright © 2011-2022 走看看