Оқулық Қазақстан Республикасы Білім жəне ғылым министрлігі бекіткен Алматы, 2011 1



бет102/210
Дата06.01.2022
өлшемі4,42 Mb.
#16437
түріОқулық
1   ...   98   99   100   101   102   103   104   105   ...   210
Байланысты:
boribaev-algoritmdeu

If d <> HercMono then SetGraphMode (m-1); операторына көңіл аударыңыз. Бұл оператодың көмегімен EGA, MCGA, VGA адаптерлерінде көппарақты режимді кепілді түрде орнатуға


179

болады. Жоғарыда айтылғандай, графикалық режим Driver = Detect арқылы іске қосылғаннан кейін, адаптердің ең жоғары нөмірлі жұмыс режимі орнатылады. Аталған адаптерлер тек бір графикалық парақпен жұмыс жасай алады. Ал екі парақпен жұмыс істеуді қамтамасыз ету үшін, режим нөмірін кішірейту керек.
Сызықтар жəне нүктелер
PutPixel процедурасы көрсетілген координаталарда берілген түспен нүкте салады. Процедура тақырыбы:

Procedure PutPixel( Х / У : Integer/ Color: Word)/ мұндағы X, Y – нүкте координаталары; Color – нүкте түсі. Координаталар терезенің немесе экранның сол жақ жоғарғы
бұрышқа байланысты беріледі.
Келесі программа экранға “жұлдызды аспанды” шығарады жəне оны өшіреді. Программадан шығу үшін кез келген пернені басыңыз.
Uses CRT, Graph;
type
Pixeltype = record
x,у:Integer;end;
const
N=5000;{ “Жұлдыз” саны}
var
d,r,e,k: Integer;
x1,y1,x2,y2: Integer;


  1. array [1..N] of Pixeltype;{Координаталар} begin

{Графиканы іске қосамыз}


d:= Detect;InitGraph(d, r,’’); e:= GraphResult;

if e<>grOk then WriteLn(GraphErrorMsg(e))


else begin
{Экран ортасында терезе саламыз}


180

x1:= GetMaxX div 4;
y1:= GetMaxY div 4;
x2:= 3*x1;
y2:= 3*y1;
Rectangle(x1,y1,x2,y2);
SetViewPort(x1+1,y1+1,x2-1,y2-
1,ClipOn);
{“Жұлдыз” салып, олардың координаталарын есте сақтаймыз}
for k:=1 to N do with a[k] do begin
x:=Random(x2-x1);
у:=Random(y2-y1)
end;
{Шығару циклы}
repeat
for k:=1 to N do
with a[k] do {“Жұлдызды”
жағамыз}
PutPixel(x,y,white); if not KeyPressed then
for k:=N downto 1 do with a[k] do {“Жұлдызды” өшіреміз}
PutPixel(x,y,black)
until KeyPressed;
while KeyPressed do k :=
ord(ReadKey);
CloseGraph
end;
end.
GetPixel функциясы координатасы берілген пикселдің түсі көрсетілген Word типті мəнді қайтарады. Функция тақырыбы :

Function GetPixel(X,Y: Integer): Word;
мұндағы X, Y – пиксел координатасы
Line процедурасы бастапқы жəне соңғы коодинаталары берілген түзу сызады. Процедура тақырыбы:
Procedure Line (X1,Y1,X2,Y2: Integer);


181

Мұндағы XI ... Yl – түзудің басының ( XI, Y1) жəне соңының (Х2, Y2) координаталары.
Түзу ағымдағы стиль жəне түспен салынады. Келесі про-граммада экран ортасында терезе салынып, терезе кездейсоқ түзулермен толтырылады. Программадан шығу үшін кез келген пернені басу керек.
Uses CRT, Graph;
var
d,r,e: Integer;
x1,y1,x2,y2: Integer; begin
Графиканы іске қосамыз} d:=Detect;InitGraph(d, r, ''); e:=GraphResult;
if e <> grOk then WriteLn(GraphErrorMsg(e))

else
begin


{Экран ортасында терезе саламыз} x1:=GetMaxX div 4;

y1:=GetMaxY div 4;


x2:=3*x1;
y2:=3*y1;
Rectangle(x1,y1,x2,y2);
SetViewPort(x1+1,y1+1,x2-1,y2-
1,ClipOn);
{Кездейсоқ түзулер циклы}
repeat
SetColor(succ(Random(16)));{Кездейсоқ
түс}
Line(Random(x2-x1), Random(y2-y1), Random(x2-x1), Random(y2-y1))
until KeyPressed;
if ReadKey=#0 then d:= ord(ReadKey); CloseGraph
end
end.




Достарыңызбен бөлісу:
1   ...   98   99   100   101   102   103   104   105   ...   210




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

    Басты бет