Professional Documents
Culture Documents
Lab 3
Lab 3
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
"ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Затверджено на засіданні
кафедри АСУ. Протокол № 3
від 10.05.2004.
Львів – 2010
Проекції та площини: Методичні вказівки до лабораторної роботи № 3 з
курсу "Комп’ютерна графіка" для студентів спеціальності «Видавничо-
поліграфічна справа» / Укл.: О.Я. Різник, М.А. Назаркевич, Д. Скрибайло-
Леськів - Львів: Видавництво Національного університету "Львівська
політехніка", 2004. - 12 с.
Теоретичні основи
Проекційна площина
Проекційна
площина
Вид звер ху
вздовж осі y
Вид збоку
вздовж осі x
Проекційна площина
ЗМІСТ ЗВІТУ
Звіт повинен містити:
1) назву роботи;
2) мету роботи;
3) короткий теоретичний вступ;
4) завдання до лабораторної роботи;
5) тексти розроблених і відлагоджених програм
6) малюнки з реалізацією програми
7) висновки
Код програми
unit Unit1;
interface {$R *.DFM}
Label2: TLabel;
edit6: TEdit;
procedure PPaint(Sender: TObject); procedure TForm1.PPaint(Sender: TObject);
private p.Canvas.FillRect(rect(0,0,p.width,p.height));
cikl:boolean=false; begin
j:=p.Height-i; p.Canvas.LineTo(x_(box_[1]-box_[3]/2),y_(box_[2]-
box_[3]/2));
while i<(p.Width div 2) do
p.Canvas.Pen.Width:=p.Canvas.Pen.Width-6;
begin
p.Canvas.brush.Color:=clwhite;
moveto(i-14,j);
p.Canvas.brush.Style:=bsFDiagonal;
lineto(i+1,j+10);
p.Canvas.Pen.Color:=clwhite;
i:=i+x_temp div 2;
p.Canvas.Polygon([point(x_(box_[4]),y_(box_[3]*2)),
j:=j-x_temp div 2; point(x_(box_[4]),y_(0)),
end; point(x_(box_[4]-box_[3]*4),y_(-
end; box_[3]*4)),
end; point(x_(box_[4]-box_[3]*4),y_(box_[2]-
box_[3]/2))
]);
procedure TForm1.FormCreate(Sender: TObject);
p.Canvas.Font.Color:=cllime;
var t,tt:integer;
p.Canvas.TextOut(p.width div 2,p.Height-80,'Xp =
begin '+FloatToStr(box_[1]));
x_temp:=p.Width div 20; p.Canvas.TextOut(p.width div 2,p.Height-60,'Yp =
t:=1; '+FloatToStr(box_[2]));
tt:=1; end;
label2.Caption:=' X Y Z
D'+#10+#13+#10+#13+#10+#13+ procedure TForm1.Button2Click(Sender: TObject);
'L'+#10+#13+'Alpha'; var box_:b;
end; begin
getparam;
procedure TForm1.Button1Click(Sender: TObject); if c.Checked then ppaint(form1);
var box_:b; p.Canvas.Pen.Width:=p.Canvas.Pen.Width+6;
begin p.Canvas.MoveTo(x_(box[1]-box[3]/2),y_(box[2]-
getparam; box[3]/2));
p.Canvas.LineTo(x_(box[1]-box[3]/2),y_(box[2]-
box[3]/2));
if c.Checked then ppaint(form1);
p.Canvas.Pen.Width:=p.Canvas.Pen.Width-6;
p.Canvas.Pen.Width:=p.Canvas.Pen.Width+6;
p.Canvas.MoveTo(x_(0),y_(0));
p.Canvas.MoveTo(x_(box[1]-box[3]/2),y_(box[2]-
box[3]/2)); p.Canvas.LineTo(x_(box[1]-box[3]/2),y_(box[2]-
box[3]/2));
p.Canvas.LineTo(x_(box[1]-box[3]/2),y_(box[2]-
box[3]/2)); box_[1]:=box[4]*box[1]/(box[3]+box[4]);
p.Canvas.Pen.Width:=p.Canvas.Pen.Width-6; box_[2]:=box[4]*box[2]/(box[3]+box[4]);
p.Canvas.MoveTo(x_(0),y_(0)); box_[3]:=box[4];
p.Canvas.LineTo(x_(box[1]-box[3]/2),y_(box[2]- box_[4]:=box[4];
p.Canvas.Pen.Color:=clyellow;
p.Canvas.Pen.Width:=p.Canvas.Pen.Width+6; p.Canvas.Pen.Width:=p.Canvas.Pen.Width-6;
p.Canvas.MoveTo(x_(box_[1]-box_[3]/2),y_(box_[2]- p.Canvas.brush.Color:=clwhite;
box_[3]/2));
p.Canvas.LineTo(x_(box_[1]-box_[3]/2),y_(box_[2]- p.Canvas.MoveTo(x_(box[1]-box[3]/2),y_(box[2]-
box_[3]/2));
box[3]/2));
p.Canvas.Pen.Width:=p.Canvas.Pen.Width-6;
p.Canvas.LineTo(x_(box_[1]-box_[3]/2),y_(box_[2]-
p.Canvas.brush.Color:=clwhite; box_[3]/2));
p.Canvas.brush.Style:=bsFDiagonal;
p.Canvas.Pen.Color:=clwhite; p.Canvas.brush.Style:=bsFDiagonal;
p.Canvas.Polygon([point(x_(box_[4]),y_(box_[3]*2)), p.Canvas.Pen.Color:=clwhite;
point(x_(box_[4]),y_(0)), p.Canvas.Polygon([point(x_(box_[4]),y_(box[3]*4)),p
point(x_(box_[4]-box_[3]*4),y_(- oint(x_(box_[4]),y_(0)),
box_[3]*4)),
point(x_(box_[4]-box_[3]*4),y_(-
point(x_(box_[4]-box_[3]*4),y_(box_[2]- box_[3]*4)),
box_[3]/2)) point(x_(box_[4]-box_[3]*4),y_(box_[2]-
]); box_[3]/2))
p.Canvas.Font.Color:=cllime; ]);
p.Canvas.TextOut(p.width div 2,p.Height-80,'Xp = p.Canvas.Font.Color:=cllime;
'+FloatToStr(box_[1])); p.Canvas.TextOut(p.width div 2,p.Height-80,'Xp =
p.Canvas.TextOut(p.width div 2,p.Height-60,'Yp = '+FloatToStr(box_[1]));
'+FloatToStr(box_[2]));
p.Canvas.TextOut(p.width div 2,p.Height-60,'Yp =
'+FloatToStr(box_[2]));
end; end;
end.
procedure TForm1.Button3Click(Sender: TObject);
var box_:b;
begin
getparam;
if c.Checked then ppaint(form1);
p.Canvas.Pen.Width:=p.Canvas.Pen.Width+6;
p.Canvas.MoveTo(x_(box[1]-box[3]/2),y_(box[2]-
box[3]/2));
p.Canvas.LineTo(x_(box[1]-box[3]/2),y_(box[2]-
box[3]/2));
p.Canvas.Pen.Width:=p.Canvas.Pen.Width-6;
box_[1]:=box[1]+box[3]*box[5]*cos(DegToRad(box[6
]));
box_[2]:=box[2]+box[3]*box[5]*sin(DegToRad(box[6
]));
box_[3]:=1;
p.Canvas.Pen.Color:=clyellow;
p.Canvas.Pen.Width:=p.Canvas.Pen.Width+6;
p.Canvas.MoveTo(x_(box_[1]-box_[3]/2),y_(box_[2]-
box_[3]/2));
p.Canvas.LineTo(x_(box_[1]-box_[3]/2),y_(box_[2]-
box_[3]/2));