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