DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

Рік:
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:53

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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