Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Типис.docx
Скачиваний:
9
Добавлен:
16.12.2018
Размер:
349.18 Кб
Скачать

Лабораторная работа № 4 Работа с графикой в Delphi

Цель работы: изучение объектов класса Canvas, окна графического редактора Paintbox. Содержание: построение графиков функций и геометрических фигур с использованием графического редактора Paintbox.

13

Окружность, эллипс, квадрат, скругленный прямоугольник

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Buttons;

type

TForm1 = class(TForm)

BitBtn1: TBitBtn;

Button1: TButton;

PaintBox1: TPaintBox;

RadioGroup1: TRadioGroup;

PaintBox2: TPaintBox;

Button2: TButton;

Button3: TButton;

PaintBox3: TPaintBox;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

X:integer;

Y:integer;

rad:integer;

begin

with paintbox1, canvas do

begin

if RadioGroup1.ItemIndex=0 then

begin

X:=Width div 2;

Y:=Height div 2;

rad:=70;

Pen.Style:=psdash;

Pen.Color:=clred;{Цвет пера}

Pen.Width:=5;{Толщина пера}

Brush.Color:=clwhite;

Brush.Style:=bshorizontal;

Ellipse(X-rad, Y-rad, X+rad, Y+rad);

end;

if RadioGroup1.ItemIndex=1 then

begin

Pen.Style:=pssolid;

Pen.Color:=clyellow;

Pen.Width:=1;

Brush.Color:=

RGB(Random(256),

Random(256),

Random(256));

Brush.Style:=bssolid;

PolyGon([Point(90,30),Point(90,60),Point(120,60),Point(120,30)])

end;

if RadioGroup1.ItemIndex=2 then

begin

Pen.Style:=pssolid;

Pen.Color:=clBlue;

Pen.Width:=1;

Brush.Color:=

RGB(Random(256),

Random(256),

Random(256));

Brush.Style:=bssolid;

PolyGon([Point(60,0),Point(80,0),Point(90,20),Point(70,40),Point(50,20)])

end;

if RadioGroup1.ItemIndex=3 then

begin

Pen.Style:=pssolid;

Pen.Color:=clBlack;

Pen.Width:=1;

Brush.Color:=

RGB(Random(16),

Random(16),

Random(16));

Brush.Style:=bssolid;

RoundRect( 100, 100, 200, 150, 40, 40);

end;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var x,y2:real;

i:integer;

begin

with paintbox2, canvas do

begin

Brush.Color:=clgreen;{Цвет фона}

pen.Width:=3;

rectangle(0,0,width,height);{Область рисования}

pen.Color:=clblack; {Цвет пера}

{Рисование осей}

moveto(0,height div 2);{Холостой ход}

lineto(width, height div 2); {Гори-зонтальная ось}

moveto(width div 2,0);{Холостой ход}

lineto(width div 2,height); {Верти-кальная ось}

{Параметры рисования графи-ков}

pen.Color:=clred;

pen.Width:=3;

pen.Style:=pssolid;

moveto(0,height div 3);

begin

x:= 3.14;

while i <= x do begin

y2 := abs(sin (i) + cos(i));

PaintBox2.Canvas.Pixels[round(x)+ width div 2,round(y2)+ height div 2] :=clBlack;

end;

end;

begin

x:= 3.14;

while i <=x do begin

y2 := abs(sin (i)) + abs(cos(i));

PaintBox2.Canvas.Pixels[round(x)+ width div 2,round(y2)+ height div 2] :=clred;

end;

end;

end;

end;

procedure TForm1.Button3Click(Sender: TObject);begin

with paintbox3, canvas do

begin

Pen.Style:=psdash;

Pen.Color:=clBlack;{Цвет пера}

Pen.Width:=2;{Толщина пера}

Brush.Color:=clwhite;

Font.Size:=12;

Ellipse(50,0,200,30);

TextOut(105,5,'Start');

Rectangle(50,50,200,70);

Font.Size:=10;

TextOut(55,52,'val(Edit1.Text,N,code)');

moveTo(125,30); LineTo(125,50);

polygon([Point(125,100),Point(50,120),Point(125,140),Point(200,120)]);

TextOut(110,110,'N>30');

moveTo(125,70);

LineTo(125,100);

Rectangle(0,170,250,200);

TextOut(10,180,'MessageDlg(От 1 до 30 введите)');

moveTo(125,140);

LineTo(125,170);

TextOut(100,145,'DA');

polygon([Point(310,100),Point(240,120),Point(310,140),Point(390,120)]);

TextOut(305,110,'1');

moveTo(200,120);

LineTo(240,120);

polygon([Point(495,100),Point(430,120),Point(495,140),Point(580,120)]);

TextOut(490,115,'...7');

moveTo(390,120);

LineTo(430,120);

Rectangle(300,220,540,250);

Font.Size:=8;

TextOut(320,225,'memo1.Lines.Add(ponedelnic)...(voskresenie)');

moveTo(310,140);

LineTo(310,220);

moveTo(495,140);

LineTo(495,220);

Ellipse(50,300,200,330);

Font.Size:=12;

TextOut(105,305,'End');

moveTo(125,200);

LineTo(125,300);

moveTo(300,235);

LineTo(125,235);

end;

end;

end.