МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ , НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
/
Звіт
до лабораторної роботи №1
з курсу «Програмування комп’ютерної графіки»
Побудова елементарних геометричних зображень
В середовищі Microsoft Visual Studio C++ 2008
1.Мета роботи - навчитися створювати проект з підтримкою MFC та вивчити основні графічні оператори бібліотеки GDI в середовищі Microsoft Visual Studio C++ 2008, набути практичних навиків в складанні програм для побудови геометричних зображень та графіків функцій.
2. Завдання
1. Домашня підготовка до роботи
2. Навчитися створювати робочий проект C++ в середовищі Microsoft Visual Studio.
3. Вивчити основні графічні функції бібліотек GDI та CDI+ операційної системи MS Windows для мови C++.
4. Написати програму на алгоритмічній мові C++, яка виводить на екран певне графічне зображення. Розміри, вказані в завданнях, проставити на кресленні. Варіанти завдань беруть за вказівкою викладача з таблиці 1.
3.Зміст завдання
Варіант №17: Намалювати п’ять олімпійських кіл радіусом 40.
4. Блок-схема
5. Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення.
CPoint MovеTo(int x, int у) - переміщує поточну вершину, jc, у визначають координати нової поточної вершини. Повертає х- та y-координати попередньої поточної вершини як CPoint об’єкт.
BOOL LineTo(int x, int y )- малює лінію з поточної вершини до вершини з координатами лс, у. Поточна вершина переміщується у вершину з координатами jc, у. При успішному виконанні функція повертає TRUE, інакше FALSE.
BOOL EIIipse(int x1, int y1, int x2, int y2) - малює еліпс, x1, у1 задають координати верхнього лівого куга, a x2, у2 правого нижнього кута прямокутника, який визначає розміри еліпса. При успішному виконанні функція повертає TRUE, інакше FALSE.
6. Код програми
// ChildView.cpp : implementation of the CChildView class
//
#include "stdafx.h"
#include "MFCApplication1.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
HPEN hPen1, hPen2, hPen3, hPen4, hPen5;
hPen1 = CreatePen(PS_INSIDEFRAME, 5, RGB(51, 153, 255));
hPen2 = CreatePen(PS_INSIDEFRAME, 5, RGB(0, 0, 0));
hPen3 = CreatePen(PS_INSIDEFRAME, 5, RGB(204, 0, 0));
hPen4 = CreatePen(PS_INSIDEFRAME, 5, RGB(255, 214, 4));
hPen5 = CreatePen(PS_INSIDEFRAME, 5, RGB(0, 0, 204));
SelectObject(dc, hPen1);
dc.Arc(20, 20, 100, 100, 100, 60, 100, 60);
SelectObject(dc, hPen2);
dc.Arc(110, 20, 190, 100, 190, 60, 190, 60);
SelectObject(dc, hPen3);
dc.Arc(200, 20, 280, 100, 280, 60, 280, 60);
SelectObject(dc, hPen4);
dc.Arc(65, 60, 145, 140, 145, 100, 145, 100);
SelectObject(dc, hPen5);
dc.Arc(155, 60, 235, 140, 235, 100, 235 ,100)
7. Результат роботи програми
/
Висновок:
На даній лабораторній роботі я навчився будувати геометричні елементи в середовищі Visual Studio 2013, вивчив основні індефікатори та ключові слова, навчився створювати MFC проект.