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

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

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

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Програмування комп’ютерної графіки

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

Міністерство освіти та науки України Національний університет “Львівська політехніка” УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ MICROSOFT VISUAL STUDIO C++ 2008 Лабораторна робота №3 з курсу «Програмування комп’ютерної графіки» Варіант №18 Мета роботи: Вивчити функції для управління кольорами та стилями графічних зображень; навчитися складати програми на алгоритмічній мові С++ для побудови різноманітних графічних зображень в середовищі MICROSOFT VISUAL STUDIO C++ 2008. Завдання: / Блок-схема програми: - + - + - + Список змінних, які використовуються в коді програми, та їх пояснення: dc.MoveTo() – переносить курсор у задану точку; dc.LineTo() – будує лінію до заданої точки; CBrush br; br.CreateSolidBrush(RGB(0,0,0)); dc.SelectObject(&br); - Створення та використання користувацького пера; dc.FloodFill(x, y, Color); - замальовує область екрану поточним пензлем х,у – координати точки всередині замкнутої області; Color – колір межі до якої буде здійснюватися замалювання; dc.SelectStockObject(Color); - перо , Color – колір пера; dc.Rectangle() – малює прямокутник, COLORREF – стандартний тип для представлення кольорів. Остаточна версія програми: // ChildView.cpp : реализация класса CChildView // #include "stdafx.h" #include "ChildView.h" #include <conio.h> #include <vector> #include<iostream> #include <math.h> #include <fstream> using namespace std; #ifdef _DEBUG #define new DEBUG_NEW #endif // CChildView CChildView::CChildView() { } CChildView::~CChildView() { } BEGIN_MESSAGE_MAP(CChildView, CWnd) ON_WM_PAINT() END_MESSAGE_MAP() // обработчики сообщений CChildView 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() { CPaintDC dc(this); CPoint pts[17]; COLORREF cBlack = RGB(0, 0, 0); COLORREF cBlue = RGB(0, 230, 250); COLORREF cBlue1 = RGB(0, 0, 250); COLORREF cYellow = RGB(255, 255, 104); CPen pBlack; pBlack.CreatePen(PS_SOLID, 12, cBlack); CPen pYellow; pYellow.CreatePen(PS_SOLID, 12, cYellow); CPen pYellow1; pYellow1.CreatePen(PS_SOLID, 8, cYellow); CPen pBlue1; pBlue1.CreatePen(PS_SOLID, 10, cBlue1); CBrush bBlue; bBlue.CreateSolidBrush(cBlue); CBrush bBlue1; bBlue1.CreateSolidBrush(cBlue1); CBrush bYellow; bYellow.CreateSolidBrush(cYellow); CBrush bBlack; bBlack.CreateSolidBrush(cBlack); dc.SelectObject(pBlue1); dc.SelectObject(bBlue); dc.Rectangle(5,5, 400,400); dc.SelectStockObject(NULL_PEN); dc.SelectObject(bBlue1); pts[0].x = 25; pts[0].y = 25; pts[1].x = 50; pts[1].y = 25; pts[2].x = 50; pts[2].y = 75; pts[3].x = 75; pts[3].y = 75; pts[4].x = 75; pts[4].y = 85; pts[5].x = 25; pts[5].y = 85; dc.Polygon(pts,6); pts[0].x = 85; pts[0].y = 25; pts[1].x = 150; pts[1].y = 25; pts[2].x = 150; pts[2].y = 35; pts[3].x = 110; pts[3].y = 35; pts[4].x = 110; pts[4].y = 50; pts[5].x = 150; pts[5].y = 50; pts[6].x = 150; pts[6].y = 60; pts[7].x = 110; pts[7].y = 60; pts[8].x = 110; pts[8].y = 75; pts[9].x = 150; pts[9].y = 75; pts[10].x = 150; pts[10].y = 85; pts[11].x = 85; pts[11].y = 85; dc.Polygon(pts,12); for (int i = 0; i < 7; i++) { if (!(i % 2)){ dc.Rectangle(160 + 12*i,25, 172 + 12*i, 37); dc.Rectangle(160 + 12*i,73, 172 + 12*i, 85); } } for (int i = 0; i < 5; i++) { if (!(i % 2)){ dc.Rectangle(172 + 12*i,37, 184 + 12*i, 49); dc.Rectangle(172 + 12*i,61, 184 + 12*i, 73); } } for (int i = 0; i < 3; i++) { if (!(i % 2)){ dc.Rectangle(184 + 12*i,49, 196 + 12*i, 61); } } dc.Rectangle(260,25, 285,85); pts[0].x = 85; pts[0].y = 25; pts[1].x = 150; pts[1].y = 25; pts[2].x = 150; pts[2].y = 35; pts[3].x = 110; pts[3].y = 35; pts[4].x = 110; pts[4].y = 50; pts[5].x = 150; pts[5].y = 50; pts[6].x = 150; pts[6].y = 60; pts[7].x = 110; pts[7].y = 60; pts[8].x = 110; pts[8].y = 75; pts[9].x = 150; pts[9].y = 75; pts[10].x = 150; pts[10].y = 85; pts[11].x = 85; pts[11].y = 85; dc.Polygon(pts,12); pts[0].x = 375; pts[0].y = 25; pts[1].x = 375; pts[1].y = 35; pts[2].x = 335; pts[2].y = 35; pts[3].x = 335; pts[3].y = 45; pts[4].x = 352; pts[4].y = 50; pts[5].x = 375; pts[5].y = 60; pts[6].x = 375; pts[6].y = 75; pts[7].x = 360; pts[7].y = 85; pts[8].x = 300; pts[8].y = 85; pts[9].x = 300; pts[9].y = 75; pts[10].x = 333; pts[10].y = 75; pts[11].x = 336; pts[11].y = 70; pts[12].x = 333; pts[12].y = 60; pts[13].x = 315; pts[13].y = 60; pts[14].x = 300; pts[14].y = 50; pts[15].x = 300; pts[15].y = 35; pts[16].x = 310; pts[16].y = 25; dc.Polygon(pts,17); dc.SelectObject(bYellow); pts[0].x = 22; pts[0].y = 300; pts[1].x = 125; pts[1].y = 300; pts[2].x = 80; pts[2].y = 335; dc.Polygon(pts,3); pts[0].x = 262; pts[0].y = 300; pts[1].x = 365; pts[1].y = 300; pts[2].x = 320; pts[2].y = 335; dc.Polygon(pts,3); dc.SelectObject(bBlack); pts[0].x = 205; pts[0].y = 90; pts[1].x = 225; pts[1].y = 102; pts[2].x = 225; pts[2].y = 130; pts[3].x = 205; pts[3].y = 150; pts[4].x = 185; pts[4].y = 130; pts[5].x = 185; pts[5].y = 102; dc.Polygon(pts, 6); dc.SelectObject(pBlack); pts[0].x = 50; pts[0].y = 320; pts[1].x = 70; pts[1].y = 338; pts[2].x = 145; pts[2].y = 295; pts[3].x = 80; pts[3].y = 162; pts[4].x = 15; pts[4].y = 295; pts[5].x = 137; pts[5].y = 295; dc.Polyline(pts, 6); pts[0].x = 290; pts[0].y = 320; pts[1].x = 310; pts[1].y = 338; pts[2].x = 385; pts[2].y = 295; pts[3].x = 320; pts[3].y = 162; pts[4].x = 255; pts[4].y = 295; pts[5].x = 377; pts[5].y = 295; dc.Polyline(pts, 6); dc.SelectStockObject(NULL_PEN); dc.SelectObject(bYellow); pts[0].x = 200; pts[0].y = 310; pts[1].x = 280; pts[1].y = 364; pts[2].x = 117; pts[2].y = 373; dc.Polygon(pts,3); dc.SelectObject(pBlack); pts[0].x = 125; pts[0].y = 370; pts[1].x = 270; pts[1].y = 370; pts[2].x = 273; pts[2].y = 355; dc.Polyline(pts, 3); pts[0].x = 152; pts[0].y = 345; pts[1].x = 232; pts[1].y = 345; pts[2].x = 235; pts[2].y = 330; dc.Polyline(pts, 3); pts[0].x = 177; pts[0].y = 320; pts[1].x = 225; pts[1].y = 320; pts[2].x = 204; pts[2].y = 320; pts[3].x = 204; pts[3].y = 145; dc.Polyline(pts, 4); pts[0].x = 60; pts[0].y = 130; pts[1].x = 331; pts[1].y = 130; pts[2].x = 337; pts[2].y = 115; dc.Polyline(pts, 3); dc.MoveTo(80,100); dc.LineTo(80,293); dc.MoveTo(320,100); dc.LineTo(320,293); dc.SelectObject(pYellow); dc.MoveTo(80,182); dc.LineTo(80,199); dc.MoveTo(320,182); dc.LineTo(320,199); dc.MoveTo(60,119); dc.LineTo(326,119); dc.SelectObject(pYellow1); pts[0].x = 187; pts[0].y = 140; pts[1].x = 194; pts[1].y = 146; pts[2].x = 194; pts[2].y = 311; dc.Polyline(pts, 3); } Результат роботи програми: / Висновок: На даній лабораторній роботі я вивчив основні функції управління кольорами та стилями графічних зображень.
Антиботан аватар за замовчуванням

12.04.2016 16:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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