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

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

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

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

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

Міністерство освіти та науки України Національний університет “Львівська політехніка” УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ 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

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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