МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Національний університет «Львівська політехніка»
Кафедра АСУ
Звіт
до лабораторної роботи №4
з курсу “Об'єктно орієнтоване програмування”
Варіант 11
Бунь І.П.
Тема Робота з графікою
Мета роботи: вивчити можливості графічної підсистеми Delphi 5, її властивості та принципи побудови прикладних програм з використанням графіки.
Порядок роботи:
Створити проект для виконання індивідуального завдання.
Оформити звіт для захисту лабораторної роботи за зразком
назва роботи
мета роботи
порядок роботи
короткі теоретичні відомості
алгоритм розв’язку задачі
тексти відповідних модулів проекту
аналіз отриманих результатів та висновки
Завдання
Створити програму, яка будує криві за заданим параметричним представленням (варіанти 1, 3, 5, 7, 9, 11, 13, 15, 17) або по їх рівняннях у полярних координатах (варіанти 2, 4, 6, 8, 10, 12, 14, 16, 18).
Параметричне представлення кривої на площині з координатами - це дві функції , , визначені на одній і тій самій числовій множині.
Полярні координати точки на площині - це відстань від фіксованої точки (полюса) до точки і кут між і полярною віссю (променем) .
11. Строфоїда
, , , .
Тексти програм:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
ScrollBar3: TScrollBar;
Label1: TLabel;
procedure FormPaint(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure ScrollBar3Change(Sender: TObject);
private
{ Private declarations }
public
procedure DrawFunc(Zoom,StartX,StartY:integer);
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.DrawFunc(Zoom,StartX,StartY:integer);
var
t:double;
a:double;
x,y:integer;
begin
a:=Zoom;
t:=0;
while t<100 do
begin
x:=StartX + round((a* (t*t-1))/(t*t+1))-200;
y:=StartY + round((a*t*(t*t-1))/(t*t+1))-200;
Self.Canvas.Pixels[x,y]:=$ff;
t:=t+0.001;
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.FillRect(GetClientRect);
DrawFunc(ScrollBar1.Position,ScrollBar3.Position,ScrollBar2.Position);
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
Paint
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
Paint
end;
procedure TForm1.ScrollBar3Change(Sender: TObject);
begin
Paint
end;
end.
Висновок: На даній лабораторній роботі я практикувався у створенні ужитку з використанням GUI для зображення графіку заданої функції. Розглянув основні методи для роботи з графікою, а саме класу TCanvas.