Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра КСА
Лабораторна робота №3
З курсу «Програмування комп’ютерної графіки»
На тему: “ УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ MICROSOFT VISUAL STUDIO C++ 2008”
Варіант № 24
Прийняв:
Старший викладач:
Іванюк О.О.
Львів - 2014
Завдання:
Написати програму на алгоритмічній мові C++, яка виводить на екран розмальоване графічне зображення. Варіанти завдань брати за вказівкою викладача з таблиці 1.
N% п/п
Варіанти завдань
24
/
Блок-схема алгоритму програми:
Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення.
MoveTo( ) – переносить курсор у задану точку;
LineTo( ) – будує лінію до заданої точки;
CBrush - користувацькй пензель;
СPen –користувацьке перо;
dc.SelectObject(& ___ ); - використання користувацького пера;
CreatePen() - ініціалізує перо заданими атрибутами;
CreateBrush ( ) - ініціалізує пензель заданими атрибутами;
Rectangle( ) – малює прямокутник.
Остаточно відлагоджений текст програми згідно з отриманим завданням.
#include "stdafx.h"
#include "mfc 3 laba.h"
#include "mfc 3 labaDoc.h"
#include "mfc 3 labaView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
void Cmfc3labaView::OnDraw(CDC* dc)
{
Cmfc3labaDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
RECT rect;
GetClientRect(&rect);
RECT rctA;
rctA.left = 20;
rctA.top = 30;
rctA.right = 180;
rctA.bottom = 230;
RECT rctB = {20,30,180,230};
CBrush red_brush, black_brush,green_brush, yelow_brush, blue_brush, pink_brush, bluew_brush,gray_brush;
CPen blue_pen, gray_pen, pink_pen, green_pen, black_pen,yelow_pen,red_pen;
// CPaintDC dc(this);
black_brush.CreateSolidBrush(RGB(0, 0, 0));
blue_brush.CreateSolidBrush(RGB(61, 12, 255));
pink_brush.CreateSolidBrush(RGB(255, 0, 255));
red_brush.CreateSolidBrush(RGB(255, 0, 0));
green_brush.CreateSolidBrush(RGB(0, 255, 0));
yelow_brush.CreateSolidBrush(RGB(255, 255, 0));
gray_brush.CreateSolidBrush(RGB(139, 128, 126));
//
black_pen.CreatePen(0,1,RGB(0, 0, 0));
blue_pen.CreatePen(0, 1, RGB(61, 12, 255));
gray_pen.CreatePen(0, 1, RGB(139, 128, 126));
red_pen.CreatePen(0,1, RGB(255, 0, 0));
pink_pen.CreatePen(0, 1, RGB(255, 0, 255));
yelow_pen.CreatePen(0,1, RGB(255, 255, 0));
green_pen.CreatePen(0, 1, RGB(0, 255, 0));
//червоний колір
red_pen.CreatePen(0,1,RGB(255, 0, 0));
dc->SelectObject(&red_pen);
red_brush.CreateSolidBrush(RGB(255, 0, 0));
dc->SelectObject(&red_brush);
dc->Rectangle(430,580,525,505);//лівий нижній квадрат(червоний)
dc->Rectangle(563,417,650,497);//квадрат червоний посередині
dc->Rectangle(470,232,558,345);//квадрат червоний вгорі справа
dc->Rectangle(583,355,607,413);
//синій колір
blue_pen.CreatePen(0, 1, RGB(61, 12, 255));
dc->SelectObject(&blue_pen);
blue_brush.CreateSolidBrush(RGB(61, 12, 255));
dc->SelectObject(&blue_brush);
dc->Rectangle(430,500,465,417);//вище червоного(синій)
dc->Rectangle(831,580,757,468);//правий нижній (синій)
dc->Rectangle(695,545,831,580);//правий нижній повністю синій лівіше
dc->SelectObject(&blue_brush);
dc->Rectangle(831,232,757,345);//синій над жовтим справа вверху
dc->Rectangle(655,315,757,345);//синій повністю
//сірий колір
gray_pen.CreatePen(0, 1, RGB(139, 128, 126));
dc->SelectObject(&gray_pen);
gray_brush.CreateSolidBrush(RGB(139, 128, 126));
dc->SelectObject(&gray_brush);
dc->Rectangle(530,448,558,580);//сірий нижній прямокутник біля жовтого червоного
dc->Rectangle(558,502,620,540);//сірий вправо
dc->Rectangle(700,232,752,310);//сірий справа вгорі блія синього
dc->Rectangle(563,312,618,331);//над буквою т
//жовтий колір
yelow_pen.CreatePen(0,1,RGB(255, 255, 0));
dc->SelectObject(&yelow_pen);
yelow_brush.CreateSolidBrush(RGB(255, 255, 0));
dc->SelectObject(&yelow_brush);
dc->Rectangle(831,350,757,462);//жовтий над синім справа
dc->Rectangle(655,232,695,310);//жовтий вгорі справа біля сірого
dc->SelectObject(&yelow_brush);
dc->Rectangle(563,545,690,580);//нижній жовтий
//рожевий колір
pink_pen.CreatePen(0, 1, RGB(255, 0, 255));
dc->SelectObject(&pink_pen);
pink_brush.CreateSolidBrush(RGB(255, 0, 255));
dc->SelectObject(&pink_brush);
dc->Rectangle(625,502,752,540);//рожевий над жовтим біля справа синього
dc->Rectangle(430,232,465,412);//рожевий над синім зліва
dc->Rectangle(695,468,752,502);//рожевий (повністю) верхня частина
dc->Rectangle(563,232,650,310);//рожевий згори по-центру
dc->Rectangle(620,310,650,334);//рожевий повністю
//зелений колір
green_pen.CreatePen(0, 1, RGB(0, 255, 0));
dc->SelectObject(&green_pen);
green_brush.CreateSolidBrush(RGB(0, 255, 0));
dc->SelectObject(&green_brush);
dc->Rectangle(655,350,752,462);//зелений справа
dc->Rectangle(655,462,690,497);//зелений повністю
dc->Rectangle(470,417,525,500);//зелений зліва над сірим
dc->Rectangle(525,417,558,442);//зелений повністю
//чорний колір
black_pen.CreatePen(0, 1,RGB(0, 0, 0));
dc->SelectObject(&black_pen);
black_brush.CreateSolidBrush(RGB(0, 0, 0));
dc->SelectObject(&black_brush);
dc->Rectangle(470,315,510,417);//T
dc->Rectangle(453,300,530,317);//T
dc->Rectangle(520,333,546,417);//Eоснова
dc->Rectangle(546,333,580,350);//Eверхня палка
dc->Rectangle(546,404,580,417);//Eнижня палка
dc->Rectangle(546,370,565,382);//Eпосередині палка
dc->Rectangle(611,333,634,417);//tоснова
dc->Rectangle(590,333,654,350);//tверхня палка
dc->Rectangle(660,333,685,417);//Основа палка R
dc->Rectangle(685,333,715,350);//Верхня палка R
dc->Rectangle(700,348,715,417);//палка вниз R
dc->Rectangle(685,368,700,380);//палка поперек R
dc->Rectangle(715,355,728,365);//R
dc->Rectangle(700,387,728,417);//R
dc->Rectangle(747,350,765,404);//I палка
dc->Rectangle(730,333,780,350);//I верхня частина
dc->Rectangle(730,400,780,417);//I нижня частина
dc->Rectangle(790,333,830,350);
dc->Rectangle(790,337,805,387);//
dc->Rectangle(800,370,830,387);//поперечна
dc->Rectangle(815,380,830,417);
dc->Rectangle(788,400,825,417);
}
Результати виконання програми.
/
Висновок:
Під час виконання цієї лабораторної роботи, я вивчив основні функції управління кольорами та стилями графічних зображень.