Оқу-әдістемелік кабинеті «Компьютерлік графика» пәні бойынша



бет46/62
Дата23.11.2022
өлшемі2,51 Mb.
#159448
1   ...   42   43   44   45   46   47   48   49   ...   62
Байланысты:
Компьютерлік графика

2
тапсырма:

T
canvas класының көмегімен төмендегі суретті салыңыз. Суреттегі машина мен итті Webdings шрифтінен алыңыз.
1-ші тапсырманың коды:
procedure TForml.FormPaint(Sender: TObject);
var
Pic : TBitmap;
begin
Pic := TBitMap.Create;
Pic.LoadFromFile('tulips.bmp');
Canvas.Draw((ClientWidth - Pic.Width) div 2,
(ClientHeight - Pic.Height) div 2, Pic) ;
Pic.Free;
end;
2-ші тапсырманың коды:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ToolWin;
type
TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
private
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
//күнніңшуақтары
SunRays : array[0..10, 0..3] of longint = (
(358, 116, 358, 141), // 1-ші шуағы
(292, 74, 319, 75), // 2-ші шуағы
(296, 35, 329, 53),
(327, 98, 299, 117),
(338, 112, 329, 129),
(378, 110, 390, 126),
(359, 33, 359, 14), //...
(384, 43, 399, 26),
(337, 38, 333, 29),
(398, 93, 419, 103),
(396, 54, 411, 45) //11-ші шуағы
);
// 1-шібұлт
Cloud0 : array[0..10, 0..3] of Longint = (
(331, 71, 536, 94), //1-ші эллипс
(366, 81, 409, 58), //2-ші эллипс
(405, 83, 469, 48),
(448, 59, 481, 79),
(422, 64, 538, 89),
(371, 66, 352, 80), //...

(514, 85, 550, 75),


(392, 64, 418, 55),
(345, 98, 389, 79),
(531, 96, 459, 78),
(392, 81, 464, 103) //11-ші эллипс );

//2-шібұлт


Cloud1 : array[0..6, 0..3] of Longint = (
( 49, 75, 241, 104), // 1-ші эллипс
( 96, 59, 162, 94), // 2-ші эллипс
( 84, 82, 108, 69),
(154, 69, 194, 82), //...
(148, 63, 174, 73),
(157, 111, 213, 93),
(111, 89, 57, 106) // 7-ші эллипс
);
//жол болып салынатын трапецияның төбелерінің коор-ы
Road: array[1..4] of TPoint = (
(x:250; y:250),
(x:205; y:380),
(x:410; y:380),
(x:330; y:250)
);

// жерді кескіндейтін тіктөртбұрыштың координаталары


Earth: TRect = (Left:0; Top:250; Right:550; Bottom:380);
// жолдың оң және сол жағындағы гооризонттағы ағаштарды кескіндейтін тіктөртбұрыштың координаталары
TreesL: TRect = (Left:0; Top:235; Right:250; Bottom:250);
TreesR: TRect = (Left:330; Top:235; Right:550; Bottom:250);

// OnPaint оқиғасы программа программа бейнені жаңарту керек //болғанда шақырылады


procedure TForm1.FormPaint(Sender: TObject);
var
r:TRect;
i : Integer;
begin
with Canvas do begin
//Күн
Brush.Color:=RGB(255,255,0);
Pen.Color:=RGB(255,255,0);
Pen.Width:=1;
Ellipse(309, 30, 407, 123);
Pen.Width:=5;
//күннің шуақтарын салу
for i := 0 to 10 do begin
MoveTo(SunRays[i, 0], SunRays[i, 1]);
LineTo(SunRays[i, 2], SunRays[i, 3]);
end;
//бұлттар
Brush.Color:=clWhite;
Pen.Color:=clWhite;
Pen.Width:=1;
// бірінші бұлтты кескіндейтін эллипстерді саламыз
for i := 0 to High(Cloud0) do
Ellipse(Cloud0[i, 0], Cloud0[i, 1], Cloud0[i, 2], Cloud0[i, 3]);

// екінші бұлтты кескіндейтін эллипстерді саламыз


for i := 0 to High(Cloud1) do
Ellipse(Cloud1[i, 0], Cloud1[i, 1], Cloud1[i, 2], Cloud1[i, 3]);

//жер
Pen.Color:=RGB(0,90,0);


Brush.Color:=RGB(0,90,0);
FillRect(Earth);
// жолдың оң және сол жағындағы горизонттағы ағаштар
Pen.Color:=RGB(0,120,0);
Brush.Color:=RGB(0,120,0);
FillRect(TreesL); FillRect(TreesR);
//асфальт төселген жол
Pen.Color:=clGray;
Brush.Color:=clGray;
Polygon(Road);
//жолдағы ақ жолақтар
Pen.Color := clWhite;
Pen.Style := psDash; //пунктирлі сызық
MoveTo((Road[1].x + Road[4].x) div 2,(Road[1].y + Road[4].y) div 2);
LineTo((Road[2].x + Road[3].x) div 2,(Road[2].y + Road[3].y) div 2); MoveTo((Road[1].x + Road[4].x) div 2 - 1, (Road[1].y + Road[4].y) div 2);
LineTo((Road[2].x + Road[3].x) div 2 - 1, (Road[2].y + Road[3].y) div 2);
MoveTo((Road[1].x + Road[4].x) div 2 + 1, (Road[1].y + Road[4].y) div 2);
LineTo((Road[2].x + Road[3].x) div 2 + 1, (Road[2].y + Road[3].y) div 2);
// Webdings шрифтінің көмегімен жолға машина саламыз
Font.Color := clBlack;
Brush.Style := bsClear;
Font.Size := 45;
Font.Name := 'Webdings';
// машинаға сәйкес келетін ағылшынның 'p' әріпін шығарамыз,
TextOut(235, 250, 'p');
//иттісаламыз
Font.Size := 30; TextOut(340, 320, 'х');
end
end;




Достарыңызбен бөлісу:
1   ...   42   43   44   45   46   47   48   49   ...   62




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет