Урок "Стандартні графічні процедури і функції для роботи з лініями, точками, багатокутниками."

Про матеріал

Розширений додатковий матеріал для вивчення теми "Комп'ютерна графіка Pascal"

Структура:

  1. Функції, необхідні для роботи з координатами
  2. Процедури для створення графічних примітивів та їх графічний розбір
  3. Програма побудови графіка функції по точках
Перегляд файлу

Стандартні графічні процедури і функції для роботи з лініями, точками, багатокутниками.

 

 

Для побудови зображення у графічному режимі використовують систему координат, яка відрізняється від текстового режиму (екран представляється у вигляді прямокутного масиву символів і координати Х, Y починаються з 1 … max значення).

Відлік координат починається з верхнього лівого кута екрана з координатами  (0, 0). При цьому екран представляється у вигляді прямокутного масиву адресованих точок (пікселів). Для різних типів адаптерів та режимів кількість точок по вертикалі та горизонталі суттєво відрізняється.

 

Для визначення максимальних значень координат екрану, в модулі GRAPH використовують функції:

GetMaxX: integer; GetMaxY: integer.

 

Особливості: якщо при адресації точок вказуються значення координат, які перевищують максимальні, то операція ігнорується.

Побудова графічного зображення починається з позначення початкової позиції. У текстовому режимі цю позицію позначає курсор, який розміщується за останнім символом і вказує на місце наступного символу. В графічних режимах відображеного на екрані курсору не має, але є прихований поточний покажчик СР (current pointer), який виконує аналогічні функції курсору текстового режиму.

 

В графічному режимі для переміщення СР використовують процедури:

MoveTo (x, y: integer) – переміщує поточний покажчик СР в точку з координатами x, y;

Move Rel (dx, dy: integer) переміщує СР на dx точок по горизонталі і на dy точок по вертикалі відносно останнього положення поточного покажчика. Якщо dx, dy більше 0, то координати СР збільшуються; якщо менше 0 – зменшуються.

Для       визначення поточного розташування      графічного курсору       СР використовують функції: GETX: integer;

GETY: integer; які повертають значення поточних координат покажчика.

Геометричні побудови.

Відображення точки:

В модулі Graph для відображення точки використовують процедуру:

PutPixel (x, y:integer, с:integer); - де x, y – координати точки, с – колір зафарбовування пікселя (змінюється від 0 до 15).

            Приклад:     Putpixel(3,3,red);

Putpixel(7,5,green);

           

Відображення ліній:

а) Процедура: Line (x1, y1, x2, y2: integer);

x1, y1, x2, y2 – координати початкової і кінцевої точок лінії. Лінія креслиться поточним стилем і поточним кольором.

            Приклад: Line (3, 4, 10, 4)          

 

 

б) Процедура: LineTo (x, y: integer); будує лінію від точки поточного розміщення

покажчика до точки з координатами (x,y).

в) Процедура: LineRel (dx, dy: integer); проводить відрізок від точки поточного

розміщення на величину заданого приросту.

 

При побудові горизонтальних, або вертикальних ліній, слід пам’ятати прості правила – у горизонтальної змінюються лише координати по осі 0Х, а у вертикальної – координати по осі 0Y.

            Приклад:      лінії,      що      проходять      через      центр      екрану        (319,239)

Line (0, 239, 639, 239) – горизонтальна лінія;

Line (319, 0, 319, 479) – вертикальна лінія;

Line (0, 0, 639, 479) – діагональна зліва на право;

Побудова прямокутників.

Процедура Rectangle (x1, y1, x2, y2: integer); створює прямокутник з координатами x1, y1 – лівого верхнього кута і x2, y2 – правого нижнього кута, хоча можна вказувати просто попарно координати протилежних кутів. Область середини прямокутника не зафарбована і співпадає          з        кольором    фону екрану.        Для ліній прямокутника використовується поточний стиль ліній і колір (заданий).

            Приклад:     Rectangle (50, 50, 200, 150);

                               Rectangle (150, 160, 60, 250);

Процедура Bar (x1, y1, x2, y2: integer); утворює прямокутник (прямокутну область, яка немає ліній границь) , внутрішня область якого заповнюється поточним стилем (тип і колір). Параметри процедури – відповідні координати протилежних вершин прямокутника. Використовують для побудови гістограм, діаграм і т.п.

           

Формування практичних вмінь і навичок.

Написати програму, яка будує трикутник, сніжинку, конверт, графік синуса.

Для того, щоб швидко навчитись малювати, та зекономити час при побудові, рекомендується виконати ескіз на аркуші в клітинку, попередньо розставивши координати точок.

Трикутник:

  

Сніжинка:

 

:

Конверт:

 

           

Графік синуса:

 

                    k=0.05; l=100;                                             k=0.1; l=100;

 

 

 

k=0.05; l=50;

       

Код програми: program sinus; uses graph; var x,y:integer;     driver, mode: integer;     a,b:integer;     k,l:real; begin driver:=detect;

 InitGraph(driver, mode,'../bgi');  if GraphResult<>0 then writeln('Error') else

a:=10;b:=240; k:=0.05;l:=100; {задання початкових параметрів}

y:=-trunc(sin(0)*l);        

{розрахунок координати першої точки}

moveto(a,y+b);              

 {переміщення графічного курсора в першу точку}

   for x:=0 to 600 do           begin

 

y:=-trunc(sin(x*k)*l); 

         {циклічно розраховуємо значення функції}

lineto(x+a,y+b);          

{та з’єднуємо точки}

end;    readln;    closegraph; end.

pdf
Додав(-ла)
Апенера Вадим
Додано
19 жовтня 2018
Переглядів
988
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку