Пероны кері бағытта ығыстырады.
Графикалық режимдегі перо және примитивтер
Бұл бөлімде графикалық режимде пероны (қылқаламды) жылжыту, бұру және экранда нүкте мен сызық салу үшін қолданылатын негізгі предикаттар берілген. Командалардың көпшілігі орындалуы үшін экран графикалық режимде болуы қажет.
Координаталар мен шектеулер
Жол және баған мәндері 0–31999 аралығында болуы керек. Экран өлшемі көлденең және тігінен 32000 қадам ретінде қарастырылады. Рұқсат етілмеген координаталар берілсе, тиісті предикат орындалмайды.
Сызу логикасы
Қылқалам pendown күйінде болса, forward және back орындалғанда сызық салынады. Сызық түсі pencolor арқылы беріледі. penup қосылса, қозғалыс із қалдырмайды.
Қозғалыс командалары
Қозғалыс бағыты пероның ағымдағы бағытымен анықталады. Бағытты алдын ала left немесе right командаларымен өзгертуге болады.
back(Қадам)
Перо(қылқалам) берілген қадам санына кері жылжиды.
- Прототип
- (i)
- Ескерту
- Графикалық режим қосулы болуы керек. Рұқсат етілмеген орынға қозғалу берілсе, команда орындалмайды. Қылқалам төмен күйде болса, қозғалыс кезінде сызық салынады.
- Мысал
-
back(500)Перо 500 қадамға кері жылжиды.
forward(Қадам)
Перо(қылқалам) берілген қадам санына алға жылжиды.
- Прототип
- (i)
- Ескерту
- Графикалық режим қосулы болуы керек. Егер қозғалыс рұқсат етілмеген аймаққа түссе, команда орындалмайды. Қылқалам белсенді болса, алға жылжығанда сызық салынады.
Бұру командалары
left(Бұрыш)
Перо көрсетілген бұрышқа сағат тіліне қарсы бұрылады.
- Прототип
- (i)
- Мысал
-
left(90)Перо 90° солға бұрылады.
right(Бұрыш)
Перо көрсетілген бұрышқа сағат тілі бағытымен бұрылады.
- Прототип
- (i)
- Мысал
-
right(45)Перо 45° оңға бұрылады.
Экранға тікелей салу
line(Жол1, Баған1, Жол2, Баған2, Түсі)
Графикалық режимде екі нүктені қосатын сызықты сызады: бірінші нүкте (Жол1, Баған1), екінші нүкте (Жол2, Баған2). Түс мәні палитраға және режимге тәуелді.
line(500, 800, 500, 3000, 2)
(500, 800) және (500, 3000) нүктелерін қосатын көлденең сызық салынады. Түс нақты палитраға байланысты анықталады (мысалы, 1-режимде ол қызыл немесе алқызыл болуы мүмкін).
dot(Жол, Баған, Түс)
Нүктенің түсін орнатады немесе оқиды. Графикалық режим қосулы болуы керек. Координаталар 0–31999 аралығында беріледі.
dot(300, 700, 2)
(300, 700) нүктесі берілген режим/палитрадағы 2 түс мәніне сәйкес боялады.
dot(500, 800, X)
Нәтижесінде X айнымалысы (500, 800) нүктесінің түс мәнімен байланысады. Мысалы, 1-режимде 0-палитра орнатылған кезде, нүкте жасыл болса, X = 1 болуы мүмкін.
Түстердің мүмкін мәндері
Түс мәндері экран режиміне байланысты өзгереді.
1-режим (палитраға тәуелді)
| Палитра | Түс 1 | Түс 2 | Түс 3 |
|---|---|---|---|
| 0 | жасыл | қызыл | сары |
| 1 | бирюзовый | лиловый | ақ |
3, 4 және 5 режимдері
| Мән | Түс |
|---|---|
| 0 | қара |
| 1 | көк |
| 2 | жасыл |
| 3 | бирюзовый |
| 4 | қызыл |
| 5 | лиловый |
| 6 | қоңыр |
| 7 | ақ |
| 8 | сұр |
| 9 | ақшыл көк |
| 10 | ақшыл жасыл |
| 11 | ақшыл бирюзовый |
| 12 | ақшыл қызыл |
| 13 | қызғылт |
| 14 | сары |
| 15 | өте ақшыл |
Қылқалам күйі және позициясы
pendown
Қылқаламды белсендіреді. Осыдан кейін forward және back командалары қозғалыс бағыты бойынша сызық қалдырады.
pendown
penup
Қылқаламды өшіреді. Одан кейінгі forward және back қозғалыстары экранда із қалдырмайды.
penup
penpos(Жол, Баған, Бағыт)
Қылқаламның орнын орнатады немесе оқиды. Жол/баған пиксельмен беріледі. Бағыт градуспен беріледі: 0° — төмен.
penpos(5000, 8000, 0)
Қылқалам (5000, 8000) позициясына қойылады және төмен бағытталады.
penpos(Z, S, R)
Бұл мысалда Z, S, R айнымалылары қылқаламның ағымдағы жолы, бағаны және бағыты мәндерімен байланысады (мысалы, 300, 6500 және 45).
Мысал: терезелер, мәтін және сызықтар арқылы көрініс салу
Төмендегі мысалда хабарлама терезесі ашылып, мәтін шығарылады, одан кейін графикалық режим іске қосылып, сызықтар көмегімен қарапайым пішін салынады.
predicates
make_window_write
goal
make_window_write.
clauses
make_window_write:-
makewindow(1,4,-4,"Message Window",0,0,25,80),
cursor(8,33), write("Are You ready?"), nl,
cursor(10,30), write("It is show time!!!"), nl,
cursor(20,28), write("To continue press Enter"), readchar(_),
clearwindow,
graphics(2,0,-15),
makewindow(2,7,7,"Home sweet home!!!",0,0,25,80),
cursor(22,28), write("Akmaral home"),
line(12000,10000,12000,21000,1),
line(20000,11000,12000,11000,1),
line(20000,11000,20000,20000,1),
line(20000,20000,12000,20000,1),
line(12000,21000,2000,14000,1),
line(2000,17000,12000,10000,1),
readchar(_),
removewindow,
exit.
Назар аударатын тұстар
- Алдымен мәтіндік терезе ашылып, пайдаланушыдан енгізу күтіледі.
- Содан кейін графикалық режим қосылып, line(...) командалары арқылы фигура салынады.
- Соңында терезе жабылып, бағдарлама аяқталады.