КГ (КомпГраф методичка к лабораторной работе №1)
Описание файла
Файл "КГ" внутри архива находится в папке "КомпГраф методичка к лабораторной работе №1". PDF-файл из архива "КомпГраф методичка к лабораторной работе №1", который расположен в категории "". Всё это находится в предмете "инженерная графика" из 4 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "компьютерная графика" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
ИТЕТ МПЬЮТЕРНАЯ ГРАФИКА РОССИИСКОИ МИНИСТЕРСТ~ М СКОВСКИИГ ТЕХ ИКИ ТЕХН Ф ультет. Вычислительн ых машин и систем ЦЕЛЬ РАБОТЫ: познакомиться с возможностями подсис р В1 опе ационной системы %~про в и средствами, предоставляемыми средой Ое р 1д р й. 3 АЧА: оответствии с выбранным вариантом задания со д р со ать в с е е Ве1 й1 программу, б ение построенное из графических примитивов, р д ст вля мых ОРМИРУЮЩУЮ ИЗО Р линий, дуг, эллипсов, залитых областей и пр. 1. ОснОВньы события испОльЗубмы6 для "апра Р гра ической программой В м " ви прикладных программ с операционной систе й %1поотв со сто оны последней организуется в виде отправки им соо щ ений. Как только в системе происходит какое-то событие, имеющее отношение к данно" р гр й п о амме, в ее очередь сообщений помещается соответствующее сообщение.
Напри р, р е и и ВВОде символа с клаВиатуры ЬВБТТОХОО%М, ри срабатывании таймера %М Т1МЕК. л одаря у сист мн ~ ресурсы: клавиатуру, мышь, дисплеи и пр. В одноз д р 4М н 3 ачнОЙ Опе ационнОЙ системе МЯ-ВОЯ,, запускавшаяся прикладная программа ед о Вла ела Всеми — г н т остоянном ожидании прихода сообщений, провер я в ц р с б ". К вое общение извлекается из очереди, оно передает роцедуре, т " г б б т . Н мер, при получении сообщения %М СНАЯ. тестовь б т ызвана процедура, которая вставит введенный симв д ку . е т, бработчик закончит свою работу, программа снова возвр щ я ц клу и я сообщений. сег с е в ет бол 9ОО различных сообщений, которые может получить пр р мм . к ть, п г ммисту нет необходимости самому писать обработч д я жд г их. П грамма может обрабатывать только те сообщения, р КОТО ЫЕ ИМЕЮТ ДЛЯ НЕЕ СМЫСЛ.
Оп рационной системой. Он выполняет всю необходиму р ту. ОИСХОДИТ ПРИ ИЗМОНОНИИ РЙЗМО СЯ В ОКНО ИН ИНИЦИЙЛИЗЙЦИИ ДЙННЫХ. ИСХОДИТ, КОГДЙ ИЗО ОЧНО ИСПОЛЬЗУОТСЯ 6 ДОЛЖНО ЫТЬ ПЕ Оджцдзеаощщ. При нажатии кнопки мыши в рабочей области формы выводит ее название, ТОГО, ЧтсбЫ ПЕ ИСХОДИТ П СЛИЧСНИЯ РЙЗМО ЙТИРОВЙТЬ НЙХО СОЗДЙНИИ В мультизадачной операционной системе, такой, как %'~плотя, обычно несколько программ ОдноВременно ВЫВОдят ин Ормацию на единственный В системе монитор.
Для того, чтобы не возникало путаницы: где какой программе рисовать, — были придуманы окна. Каждая программа может создать для себя одно или несколько окон. Окно состоит из системной Области, к котОРОй Относятся зигОловок, рамка, строки состОЯниЯ, пОлбсы прокрутки и Рабочей Области, В которую Выводится полезная ИНФ как вполне самостоятельные объекты, их изображения на самом деле хранятся в одной общей области видеопамяти.
Когда какое-нибудь окно всплывает наверх, его невидимая часть рисуется заново и затирает изображения других окон, которые оказались под ним. Окна — это логические объекты и их работа практически полностью обеспечивается операционной цветом, за перемещение, изменение размера окна и пр. Прикладная программа свободна от всех этих забот и должна решать только свою непосредственную задачу. Для того, чтобы информировать программу о необходимости заново с ормировать изображение в рабочей области окна, используется событие ОпРагп1 «ему соответствует сообщение %М РАПОРТ).
Оно происходит сразу, как только в рабочей области окна появляется незаполненный участок. Причиной этого может быть, например, увеличение размера окна или же изменение его положения относительно других окон. На рис. 6 показан круг, нарисованный по щелчку мышкой в обработчике события ОПС11ск. Его частично закрыли другим окном, а затем это окно убрали на задний план. Операционная система восстановила изображение рамки и фон рабочей области в ставшей теперь видимой части окна. Но изображение круга так и Осталось неполным. Для того, чтобы Восстановить его, нужно снова щелкнуть Мышкой Для На рис.
7 показан тот же круг, с которым проделали то же самое: Он был закрыт другим окном, а затем это окно убрали ни задний план. Операционная система восстановила рамку и было за иксировано событие ОпРаЫ и был вызван его обработчик. Он нарисовал круг заново. впечатление, что окна — это тонкие пластинки, которые просто меняются местами. Кисть (ВГииЬ) Кисть используется для Закрашивания внутренней части замкнутых фигур «прямоугольников, эллипсов и т.п.) и при заливке Ограниченных областей краской «функция Иоод "111).
Она имеет следующие основные свойства: е СО1ог: ТСО1Оà — Цвет закраски. е Яу1е:ТВгивИ~у1е — стильзакраски: сплошная «ЬвБО1Ы), прямая сетка «ЬьСговь), косая сетка «Ьв%адсговв), наклонные линии «ЬвВИадопа1 и ЬвРИадопа1), горизонитальные линии ЬвНогяоп1а1), вертикальные линии «ЬзУег6са1), чистая, не рисует «Ьвс1еаг). е Вйтар: ТВКтар — двухцветный рисунок размером Зх3 точек. Если задан, то используется как шаблон при закраске и позволяет задать собственный стиль закраски.
Ниже приводится пример программы, рисующей при щелчке мышкой два круга. Один закрашен с испОльзованием стандартнОГО стиля кисти, Для второГО создан шаблОн — маленький КРУЖОК. ПРимеР ЛИ.
Ниже приведен обработчик события ОпМоивеооюп формы, который при нажатии мышью в любом месте ее рабочей области рисует там жирную точку и рядом выводит координаты курсора мыши. РеЗультат нескольких нажатий показан на рис 12. ПРимер М2. Ниже приведен обработчик события ОпРа1п1 ормы, который загружает айла .ЬП1р и выводит его на орму «рис. 13). Здесь используются свойства формы С1~еп1%ЫЙ и Сйеп1нец,М, возвращающие соответственно ширину и высоту ее рабочей области, а также класс ТВИтар, предназначенный для работы с двоичными изображениями.
ТСаптая пейзаж. Для изображения машины и собаки используется шрифт %еЬЙпдв., Результат изображение из ф //коорДинаты Вершин трапеЦии~ изображаюЩей ДорОГУ Роаэс: аггау~1..41 ой ТРохп~ (х:250; у:250), (х:205; у:380), (х:410; у:380), (х:330; у:250) //координаты прЯмо~Гольника, изображаЮЩеГО Еаг~Ь: Туес~ = (1еГ~: 0; Тор: 250; ВхцЬ~: 550; ВО11от: 380); //коорДинаты прЯмОУГОльникОВ, изображаюЩий ДереВьЯ на ГоризОнте //слеВа и спраВа От дороГи Тгеея1,: ТКес1 = (1ей1:О; Тор:235р ВхдЬ1:250; ВО11от:250); ТгееяВ: Туес~ = (1е~~:330; Тор:235; Е~ цЬ~:550; Во~~от:250); //ОбработтЯик сОбытиЯ ОПРал.п1.
ВызыВаетсЯ кОГДа проГрамма ДОлжна ОбнОВить //изображение ргосебиге ТГогт1.Го~тРахп~(Яепбег: ТСЬ-)ест)~ //облако И'1 С1оибО : ахгау~О (331, 71, 536, (366, 81, 409, (405, 83, 469, (448, 59, 481, (422, 64, 538, (371, 66, 352, (514, 85, 550, (392, 64, 418, (345, 98, 389, (531, 96, 459, (392, 81, 464, ° .10, 0..31 ой 1,опц~п~ 94), //эллипс И'1 58), //эллипс У2 48), 79), 89), 80), //. ° ° 75), 55), 79), 78), 103) //эллипс И'-11 х~е," //кисть -- белого цвета е„ //перо -- белого цвета //толкина пера — — 1 то~ка ИЗ КОТОРЫХ СОСТОИТ ПЕРВОЕ О (С1оибО) бо х, О1, С1оибО[~, 11, С1оибО[х, Ы~ ИЗ КОТОРЫХ СОСТОИТ ВТОРОЕ О (С1оиб1) бо О~, С1оиб1[х, 11, С1 б1[~., ПЕРО -- ТЕМНО-ЗЕЛЕНОЕ /асфальтированная лорога еп.СО1ОГ:=с16Гау; //перО Серого цвета гыяЬ.СО1ог:=с16гау; //кисть серого цвета О1уЯОй (гоаб) к /белая разделительная пОлОса еп.СО1ог := с1ЫЙх1ер еп.
Б1:у1е:= раааа?~у очеТО ( (гоаб [1) . х + В хпеТО((Еоаб[2).х + К очеТО((гоаб[1~.х + Е ~пеТО((Коаб[2~.Х + Е очеТО((Еоаб[1).х + К ~.пеТО((Еоаб[2|.х + Е //пунктирная линия оаб[41.х) бич 2, (Еоа оаб [3) . х) б~.ч 2, (Коа оас1 [4] . Х) Жч 2 — 1, оаб[3) .х) б~ч 2 — 1, оаб[4).х) б~ч 2 + 1, Оаб[3~ .х) бзч 2 + 1, аб [4 ~ . у) б1 ч аб [3) . у) бич + гоаб [4) . у) + гоаб [3~ . у) + гоаб [4] . у) + гоаб [31 . у) [1~ .у + [21.у + Е (гоаб[1~ . (гоаб[2~. (Еоаб[1~ .
(Воаб[2~. нарисуем собак //правый лист р6: ах'х'ау[1..71 (х:186; у:225) (х:205; у:160) (х:219; у:153) (х."262р у:175) (х:246; у:165) (х:205; у:170) (х:186; у:225) ой Тро~п1 = ( //левый лист р7: ахх.ау[1..7) (х:186; у:225) (х:154; у:187) (х:130; у:215) (х:112у у:252) (х:142; у:219) (х:167; у:205) (х:186; у:225) «/Обработчик события ОпРа~п~.
Вызывается, КОГда проГрамма //должна обновить изображение рхосес(цхе ТГохт1.ГОхп|Рахп1(Яепйех'-' ТОЬ~ес~)7 ~7ах' 1. : Ьу~ер Ьедхп из ~Ь. Сап'чаЯ ЙО ЬеЯ3 и (Выведем надпись) Вх~зп.СО1ох':= СО1ох'; //цвет кисти = цвету формы Гоп1.Яхане := 12у //размер шрифта Гоп~.Ыа1пе := СОН1хс БапВ МБ ; //название шрифта //выведем надпись Тех~Ои1(40,10,'Пробел — — показать/спрятать линии' ); (нарисуем силуэт вазы) //устанОВим цВет и ширину пера Реп.СО1ох := С1В1ие; Реп.Ы~б1Й := 4; //левая кривая РО1уВек*'ех'(р1); //правая кривая РО1уВекхех'(р2); //Верхняя Горизонтальная линия ОГраничивающая Вазу МоееТо (р1 [1) . х, р1 [1~ . у); 1 хпеТО (р2 [1~ .
х, р2 [1) . у); //нижняя линия ГОризОнтальная линия ОГраничивающая Вазу Мочето(р1[71 .х, р1[71 .у) у 1.хпеТО(р2[7~ .х, р2[71 .у); //зальем Внутреннюю часть Вазы тем же цветОМ какой имеет ее контур ВхивЬ.СО1ох := С1В1ие; //установим цвет кисти Г1ообГ~11(р1[31 .х+5, р1[3~ .у, С1В1ие, ЙяВохбех'); //выполним заливку (нарисуем цветок) Реп.СО1ог := $ООСОВОГГ; //перо -- кремового цвета РО1уВеехег(р4); //нарисУем Верхнюю Часть цветка плавноЙ линией РО1у~~пе(р5)Р //нарис7ем нижнюю часть цВетка линией с изломами ВгияЬ.СО1ог := $ООСОВОГГ; //кисть -- кремового цвета //зальем Внутреннюю часть цВетка кремоВОЙ краскОЙ Г1ообГх11(р5[2~ .х+5, р5[2~ .у, ЗООСОВОГГ, ГяВогбег); (нарисуем левый лист) РО1уВек~ег(р7)у //контур листа Г1ообГ~11(150, 213, С15гееп, ЙяВогбег)р //закраска внутренней части (если флаг ЯпоыР~я = ~где, то нарисуем линии, соединяющие точки, пО кОтОрым рисовались криВые Безье и Отметим их красными кружками) ~ Й ЯЬоыР~я = багие 1Ьеп Ьедхп //нарисуем ломаные линии Реп.СО1ог := С1В1асЫ~ Реп.Я1у1е ."= ряВО1у Вгияп.СО1аг := СО1ог~ Реп.Ы~с11Ь ."= 1; РО1у13 пе (р1 ) у РО1у1~пе (р2); РО1у1з пе (рЗ); РО1у11.пе (р4) у РО3 у1~ пе (рб); РО1у1~пе(р7) у //Отметим тОчки красными кружками Реп.СО1Ог := с1Ееб; Вгияп.СО1ог ."= С1Еес1; Йог ~:= О 1О 1епд~Ь(р1) сто Е11лряе(р1[з ~ .х — 3, р1[з 1 .
у-З, р1 Йог ~:= О 1о 1епц~Ь(р2) бо Е111ряе(р2[~~.х-З, р2[~1.у-З, р2 Гог ~.: = О 1о 1епс(сп (рЗ) бо Е11хряе (рЗ [~ ~ . х-З, рЗ [~ ~ . у-З, рЗ йог х:= О ~о 1епд~Ь(р4) сто Е115.ряе (р4 [з ~ . х-З, р4 [з ~ . у-З, р4 Йог х: = О ~о 1епц~Ь (рб) бо Е11хряе (рб [х ~ . х-З, рб [х3 . у-З, рб Йог ~:= О 1о 1епд1Ь(р7) бо Е11хряе (р7 [х1 . х-З, р7 [~1 .