УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
ЗІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп'ютерна графіка
Група:
СІ-22

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / ЗВІТ До лабораторної роботи №3 З курсу :”Комп’ютерна графіка” На тему: “ УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ ” Львів 2014 Мета роботи - вивчити функції для управління кольорами та стилями графічних зображень; навчитися складати програми на алгоритмічній мові C++ для побудови різноманітних графічних зображень. ЗАВДАННЯ Написати програму на алгоритмічній мові C++, яка виводить на екран розмальоване графічне зображення. 19. /   БЛОК-СХЕМА / СПИСОК ФУНКЦІЙ ВИКОРИСТАНИХ В ПРОГРАМІ MovcTo(int x, int у) - переміщує поточну вершину, jc, у визначають координати нової поточної вершини. Повертає х- та y-координати попередньої поточної вершини як CPoint об’єкт. LineTo(int x, int y )- малює лінію з поточної вершини до вершини з координатами лс, у. Поточна вершина переміщується у вершину з координатами jc, у. CreatePen(int nPenStyle, int пWidth, COLORREF crColor) - ініціалізує перо заданими атрибутами. Rectangle(int x1,int y1,int x2, int y2) - малює прямокутник, x1, y1 задають координати верхнього лівого кута, a x2, у2 правого нижнього кута прямокутника. COLORREF RGB(BYTE by Red, BYTE byGreen, BYTE byBlue) - повертає колір, який базується на заданих червоній (byRed), зеленій (byGreen) та синій (byBlue) компонентах. FloodFill(int х, int у, COLORREF crColor) - замальовує область екрану поточним пензлем, х, у - координати крапки всередині замкнутої області. crColor - колір межі до якої буде здійснюватися замальовування. Якщо фігура не замкнута то буде замальовано весь екран. ТЕКСТ ПРОГРАМИ: #include "stdafx.h" #include "PKG lab_3.h" #include "ChildView.h" #ifdef _DEBUG #define new DEBUG_NEW #endif CChildView::CChildView() { } CChildView::~CChildView() { } BEGIN_MESSAGE_MAP(CChildView, CWnd) ON_WM_PAINT() END_MESSAGE_MAP() BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) { if (!CWnd::PreCreateWindow(cs)) return FALSE; cs.dwExStyle |= WS_EX_CLIENTEDGE; cs.style &= ~WS_BORDER; cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, ::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL); return TRUE; } void CChildView::OnPaint() /// variant 19, laba 3 ///////// Variant 7 , laba 4 { CPaintDC dc(this); // контекст устройства для рисования // TODO: Добавьте код обработки сообщений CPen pen,wr,ws,WD,SD; wr.CreatePen(0,0, RGB(0,0,0)); dc.SelectObject(&wr); /////////// dc.Rectangle(100,20,1200,270); //////////// WD.CreatePen(0,0, RGB(0,0,0)); dc.SelectObject(&WD); /////////////// dc.MoveTo(450,270); dc.LineTo(950,270); dc.MoveTo(450,270); dc.LineTo(100,400); dc.LineTo(850,650); dc.LineTo(950,270); ////////////////// CBrush blue_brush; blue_brush.CreateSolidBrush(RGB(250, 245, 0)); dc.SelectObject(&blue_brush); dc.FloodFill(150, 50, RGB(0,0,0)); //////////////// CBrush green_brush; green_brush.CreateSolidBrush(RGB(0, 0, 250)); dc.SelectObject(&green_brush); dc.FloodFill(500, 290, RGB(0,0,0)); ////////////// pen.CreatePen(20,20, RGB(0,0,0)); dc.SelectObject(&pen); ///////////////////B dc.MoveTo(150,40); dc.LineTo(150,240); dc.LineTo(250,240); dc.LineTo(250,180); dc.MoveTo(150,140); dc.LineTo(220,140); dc.LineTo(250,100); dc.MoveTo(220,140); dc.LineTo(250,180); dc.MoveTo(250,100); dc.LineTo(250,40); dc.LineTo(150,40); //////////////////O dc.MoveTo(300,40); dc.LineTo(300,40); dc.LineTo(300,240); dc.LineTo(400,240); dc.LineTo(400,40); dc.LineTo(300,40); /////////////////R dc.MoveTo(450,40); dc.LineTo(450,240); dc.MoveTo(450,40); dc.LineTo(550,40); dc.LineTo(550,140); dc.LineTo(450,140); dc.LineTo(550,240); ////////////////L dc.MoveTo(600,40); dc.LineTo(600,240); dc.LineTo(700,240); /////////////////A dc.MoveTo(750,40); dc.LineTo(750,240); dc.MoveTo(750,40); dc.LineTo(850,40); dc.LineTo(850,240); dc.MoveTo(850,140); dc.LineTo(750,140); //////////////////N dc.MoveTo(900,240); dc.LineTo(900,40); dc.LineTo(1000,240); dc.LineTo(1000,40); //////////////////D dc.MoveTo(1050,40); dc.LineTo(1050,240); dc.LineTo(1100,240); dc.LineTo(1150,200); dc.LineTo(1150,80); dc.LineTo(1100,40); dc.LineTo(1050,40); /////////////////////C++ ws.CreatePen(0,0, RGB(0,0,0)); dc.SelectObject(&ws); /////////// dc.MoveTo(400,320);//////12 dc.LineTo(400,580);///////12 dc.MoveTo(510,280);///1 dc.LineTo(350,280);///1 dc.LineTo(350,620);//2 dc.LineTo(510,620);///3 dc.LineTo(510,560);//4 dc.LineTo(460,560);//5 dc.LineTo(460,580);//6 dc.LineTo(400,580);//7 dc.MoveTo(510,280);//8 dc.LineTo(510,340);//8 dc.LineTo(460,340);//9 dc.LineTo(460,320);//10 dc.LineTo(400,320);//11 /////////////////// dc.MoveTo(350,620); dc.LineTo(370,640); dc.LineTo(530,640); dc.LineTo(530,580); dc.LineTo(510,560); //////////////////// CBrush bdf_brush; bdf_brush.CreateSolidBrush(RGB(100, 100, 100)); dc.SelectObject(&bdf_brush); dc.FloodFill(385, 635, RGB(0,0,0)); //////////// CBrush bAQ_brush; bAQ_brush.CreateSolidBrush(RGB(400, 445, 0)); dc.SelectObject(&bAQ_brush); dc.FloodFill(380, 310, RGB(0,0,0)); ///////////////////////////////// CBrush bAW_brush; bAW_brush.CreateSolidBrush(RGB(400, 445, 0)); dc.SelectObject(&bAW_brush); dc.FloodFill(371, 281, RGB(0,0,0)); ///////////////////////////// CBrush bAZ_brush; bAZ_brush.CreateSolidBrush(RGB(400, 445, 0)); dc.SelectObject(&bAZ_brush); dc.FloodFill(508, 588, RGB(0,0,0)); //////////////////// SD.CreatePen(0,0, RGB(0,0,0)); dc.SelectObject(&SD); //////////// dc.MoveTo(660,300);//1 dc.LineTo(760,300);//1 dc.LineTo(760,400);//2 dc.LineTo(860,400);//3 dc.LineTo(860,500);//4 dc.LineTo(760,500);//5 dc.LineTo(760,600);//6 dc.LineTo(660,600);//7 dc.LineTo(660,500);//8 dc.LineTo(560,500);//9 dc.LineTo(560,400);//10 dc.LineTo(660,400);//11 dc.LineTo(660,300);//12 /////////// dc.MoveTo(660,600); dc.LineTo(680,620); dc.LineTo(780,620); dc.LineTo(780,520); dc.LineTo(860,520); dc.LineTo(860,500); ///////////// CBrush blda_brush; blda_brush.CreateSolidBrush(RGB(100, 100, 100)); dc.SelectObject(&blda_brush); dc.FloodFill(700,610, RGB(0,0,0)); /////////////// CBrush bldaW_brush; bldaW_brush.CreateSolidBrush(RGB(100, 100, 100)); dc.SelectObject(&bldaW_brush); dc.FloodFill(800,510, RGB(0,0,0)); ////////////////// CBrush bldaw_brush; bldaw_brush.CreateSolidBrush(RGB(400, 445, 0)); dc.SelectObject(&bldaw_brush); dc.FloodFill(679,598, RGB(0,0,0)); ///////// CBrush b_brush; b_brush.CreateSolidBrush(RGB(400, 445, 0)); dc.SelectObject(&b_brush); dc.FloodFill(670, 310, RGB(0,0,0)); /////////////// dc.MoveTo(880,400);//1 dc.LineTo(880,500);//1 dc.LineTo(980,500);//2 dc.LineTo(980,600);//3 dc.LineTo(1080,600);//4 dc.LineTo(1080,500);//5 dc.LineTo(1180,500);//6 dc.LineTo(1180,400);//7 dc.LineTo(1080,400);//8 dc.LineTo(1080,300);//9 dc.LineTo(980,300);//10 dc.LineTo(980,400);//11 dc.LineTo(880,400);//12 dc.MoveTo(980,600); dc.LineTo(1000,620); dc.LineTo(1100,620); dc.LineTo(1100,520); dc.LineTo(1180,520); dc.LineTo(1180,500); CBrush bldas_brush; bldas_brush.CreateSolidBrush(RGB(100, 100, 100)); dc.SelectObject(&bldas_brush); dc.FloodFill(1000,610, RGB(0,0,0)); CBrush ba_brush; ba_brush.CreateSolidBrush(RGB(400, 445, 0)); dc.SelectObject(&b_brush); dc.FloodFill(1150, 450, RGB(0,0,0)); CBrush bas_brush; bas_brush.CreateSolidBrush(RGB(400, 445, 0)); dc.SelectObject(&bas_brush); dc.FloodFill(900, 450, RGB(0,0,0)); } Результат програми / Висновок: під час лабораторної роботи я вивчив функції для управління кольорами та стилями графічних зображень та навчитися складати програми на алгоритмічній мові C++ для побудови різноманітних графічних зображень.
Антиботан аватар за замовчуванням

14.12.2014 13:12-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!