Пероны кері бағытта ығыстырады.

Графикалық режимдегі перо және примитивтер

Бұл бөлімде графикалық режимде пероны (қылқаламды) жылжыту, бұру және экранда нүкте мен сызық салу үшін қолданылатын негізгі предикаттар берілген. Командалардың көпшілігі орындалуы үшін экран графикалық режимде болуы қажет.

Координаталар мен шектеулер

Жол және баған мәндері 0–31999 аралығында болуы керек. Экран өлшемі көлденең және тігінен 32000 қадам ретінде қарастырылады. Рұқсат етілмеген координаталар берілсе, тиісті предикат орындалмайды.

Сызу логикасы

Қылқалам pendown күйінде болса, forward және back орындалғанда сызық салынады. Сызық түсі pencolor арқылы беріледі. penup қосылса, қозғалыс із қалдырмайды.

Қозғалыс командалары

Қозғалыс бағыты пероның ағымдағы бағытымен анықталады. Бағытты алдын ала left немесе right командаларымен өзгертуге болады.

back(Қадам)

Перо(қылқалам) берілген қадам санына кері жылжиды.

integer · 0–31999
Прототип
(i)
Ескерту
Графикалық режим қосулы болуы керек. Рұқсат етілмеген орынға қозғалу берілсе, команда орындалмайды. Қылқалам төмен күйде болса, қозғалыс кезінде сызық салынады.
Мысал
back(500)

Перо 500 қадамға кері жылжиды.

forward(Қадам)

Перо(қылқалам) берілген қадам санына алға жылжиды.

integer · 0–31999
Прототип
(i)
Ескерту
Графикалық режим қосулы болуы керек. Егер қозғалыс рұқсат етілмеген аймаққа түссе, команда орындалмайды. Қылқалам белсенді болса, алға жылжығанда сызық салынады.

Бұру командалары

left(Бұрыш)

Перо көрсетілген бұрышқа сағат тіліне қарсы бұрылады.

integer
Прототип
(i)
Мысал
left(90)

Перо 90° солға бұрылады.

right(Бұрыш)

Перо көрсетілген бұрышқа сағат тілі бағытымен бұрылады.

integer
Прототип
(i)
Мысал
right(45)

Перо 45° оңға бұрылады.

Экранға тікелей салу

line(Жол1, Баған1, Жол2, Баған2, Түсі)

Графикалық режимде екі нүктені қосатын сызықты сызады: бірінші нүкте (Жол1, Баған1), екінші нүкте (Жол2, Баған2). Түс мәні палитраға және режимге тәуелді.

Прототип
(i, i, i, i, i)
0–31999 координаталар
Мысал
line(500, 800, 500, 3000, 2)

(500, 800) және (500, 3000) нүктелерін қосатын көлденең сызық салынады. Түс нақты палитраға байланысты анықталады (мысалы, 1-режимде ол қызыл немесе алқызыл болуы мүмкін).

dot(Жол, Баған, Түс)

Нүктенің түсін орнатады немесе оқиды. Графикалық режим қосулы болуы керек. Координаталар 0–31999 аралығында беріледі.

1) Түсті орнату
Прототип: (i, i, i)
dot(300, 700, 2)

(300, 700) нүктесі берілген режим/палитрадағы 2 түс мәніне сәйкес боялады.

2) Түсті оқу
Прототип: (i, i, 0)
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° — төмен.

1) Орнату
Прототип: (i, i, i)
penpos(5000, 8000, 0)

Қылқалам (5000, 8000) позициясына қойылады және төмен бағытталады.

2) Оқу
Прототип: (0, 0, 0)
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(...) командалары арқылы фигура салынады.
  • Соңында терезе жабылып, бағдарлама аяқталады.