Міністерство освіти i науки України
Національний університет “Львівська політехніка”
Лабораторна робота №1
з курсу «Програмування комп’ютерної графіки»
на тему: «Побудова елементарних зображень в середовищі MICROSOFT VISUAL STUDIO C++ 2008»
Варіант 2
Львів 2014
Завдання:
Побудувати ромб, діагоналі якого дорівнюють 122 і 88(одна з діагоналей має бути розташована горизонтально) і описати навколо нього еліпс.
Блок-схема програми:
Список функцій:
CPoint MovеTo(int x, int у) - переміщує поточну вершину, jc, у визначають координати нової поточної вершини. Повертає х- та y-координати попередньої поточної вершини як CPoint об’єкт.
BOOL LineTo(int x, int y )- малює лінію з поточної вершини до вершини з координатами лс, у. Поточна вершина переміщується у вершину з координатами jc, у.
BOOL EIIipse(int x1, int y1, int x2, int y2) - малює еліпс, x1, у1 задають координати верхнього лівого куга, a x2, у2 правого нижнього кута прямокутника, який визначає розміри еліпса.
Остаточна версія програми:
// ChildView.cpp : реализация класса CChildView
//
#include "stdafx.h"
#include "laba-1PKG.h"
#include <math.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
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);
dc.Ellipse(616,310,704,432);
dc.MoveTo(660,310);
dc.LineTo(660,432);
dc.MoveTo(616,374);
dc.LineTo(704,374);
dc.MoveTo(660, 310);
dc.LineTo(616,374);
dc.MoveTo(616,374);
dc.LineTo(660,432);
dc.MoveTo(660,432);
dc.LineTo(704,374);
dc.MoveTo(704,374);
dc.LineTo(660,310);
}
Результати роботи програми:
/
Висновок:
На даній лабораторній роботі я навчився створювати проект з підтримкою MFC та вивчив основні графічні оператори бібліотеки GDI в середовищі Microsoft Visual Studio C++ 2008, набув практичних навиків в складані програм для побудови геометричних зображень.