Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра КСА
//
Лабораторна робота №3
З курсу «Програмування комп’ютерної графіки»
На тему: “ УПРАВЛІННЯ КОЛЬОРАМИ ТА СТИЛЯМИ ГРАФІЧНИХ ЗОБРАЖЕНЬ В СЕРЕДОВИЩІ MICROSOFT VISUAL STUDIO C++ 2008”
Варіант № 24
Львів - 2015
Завдання:
Написати програму на алгоритмічній мові C++, яка виводить на екран розмальоване графічне зображення. Варіанти завдань брати за вказівкою викладача з таблиці 1.
N% п/п
Варіанти завдань
24
/
Блок-схема алгоритму програми:
Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення.
MoveTo( ) – переносить курсор у задану точку;
LineTo( ) – будує лінію до заданої точки;
CBrush - користувацькй пензель;
СPen –користувацьке перо;
dc.SelectObject(& ___ ); - використання користувацького пера;
CreatePen() - ініціалізує перо заданими атрибутами;
CreateBrush ( ) - ініціалізує пензель заданими атрибутами;
Rectangle( ) – малює прямокутник.
Остаточно відлагоджений текст програми згідно з отриманим завданням.
// ChildView.cpp : implementation of the CChildView class
//
#include "stdafx.h"
#include "PCG1.h"
#include "ChildView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CChildView
CChildView::CChildView()
{
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView, CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
// CChildView message handlers
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); // device context for painting
// TODO: Add your message handler code here
// Do not call CWnd::OnPaint() for painting messages
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, white_brush, gray_brush;
CPen blue_pen, gray_pen, pink_pen, green_pen, black_pen, yelow_pen, red_pen, white_pen;
// CPaintDC dc(this);
black_brush.CreateSolidBrush(RGB(0, 0, 0));
white_brush.CreateSolidBrush(RGB(255, 255, 255));
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));
white_pen.CreatePen(0, 1, RGB(255, 255, 255));
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));
//червоний колір
dc.SelectObject(&red_pen);
dc.SelectObject(&red_brush);
dc.Rectangle(430, 580, 525, 505);//лівий нижній квадрат(червоний)
dc.Rectangle(563, 417, 650, 497);//квадрат червоний посередині
dc.Rectangle(470, 232, 558, 345);//квадрат червоний вгорі справа
//синій колір
dc.SelectObject(&blue_pen);
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);//синій повністю
//сірий колір
dc.SelectObject(&gray_pen);
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, 412);//над буквою т
//жовтий колір
dc.SelectObject(&yelow_pen);
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);//нижній жовтий
//рожевий колір
dc.SelectObject(&pink_pen);
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, 412);//рожевий повністю
//зелений колір
dc.SelectObject(&green_pen);
dc.SelectObject(&green_brush);
dc.Rectangle(655, 350, 752, 462);//зелений справа
dc.Rectangle(655, 462, 690, 497);//зелений повністю
dc.Rectangle(470, 417, 525, 500);//зелений зліва над сірим
dc.Rectangle(505, 350, 558, 442);//зелений повністю
//білий колір
dc.SelectObject(&white_pen);
dc.SelectObject(&white_brush);
dc.Rectangle(465, 310, 515, 422);//T
dc.Rectangle(448, 295, 535, 322);//T
dc.Rectangle(515, 328, 551, 422);//Eоснова
dc.Rectangle(541, 328, 585, 355);//Eверхня палка
dc.Rectangle(541, 399, 585, 422);//Eнижня палка
dc.Rectangle(541, 365, 570, 387);//Eпосередині палка
dc.Rectangle(606, 328, 639, 422);//tоснова
dc.Rectangle(585, 328, 659, 355);//tверхня палка
dc.Rectangle(655, 328, 690, 422);//Основа палка R
dc.Rectangle(680, 328, 720, 355);//Верхня палка R
dc.Rectangle(695, 343, 720, 422);//палка вниз R
dc.Rectangle(680, 363, 705, 385);//палка поперек R
dc.Rectangle(710, 350, 733, 370);//R
dc.Rectangle(695, 382, 733, 422);//R
dc.Rectangle(742, 345, 770, 409);//I палка
dc.Rectangle(725, 328, 785, 355);//I верхня частина
dc.Rectangle(725, 395, 785, 422);//I нижня частина
dc.Rectangle(785, 328, 835, 355);
dc.Rectangle(785, 332, 810, 392);//
dc.Rectangle(795, 365, 835, 392);//поперечна
dc.Rectangle(810, 375, 835, 422);
dc.Rectangle(783, 395, 830, 422);
//чорний колір
dc.SelectObject(&black_pen);
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);
}
Результати виконання програми.
/
Висновок:
Під час виконання цієї лабораторної роботи, я вивчив основні функції управління кольорами та стилями графічних зображень.