Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

з курсу Програмування комп~ютерної графіки ПОБУДОВА ГРАФІКІВ ФУНКЦІЙ В СЕРЕДОВИЩІ MICROSOFT

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.11.2024

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

Лабораторна робота №2

з курсу        

«Програмування компютерної графіки»

ПОБУДОВА ГРАФІКІВ ФУНКЦІЙ

В СЕРЕДОВИЩІ MICROSOFT VISUAL STUDIO C++ 2008

Підготував ст. гр. СІ-21

Белов Ю. Г.

Прийняв

Іванюк О.О

Львів-2012

ЗАВДАННЯ

Варіант №2

Блок-схема

Список ідентифікаторів констант, змінних, процедур і функцій, використаних в програмі, та їх пояснення

rect – структура, в якій записані розміри екрана.

GetClientRect(&rect) – команда для запису розмірів екрана в структуру rect.

str[192] – массив символів.

kx,ky – коефініент перетворення по осях x та y відповідно.

x0,y0 – мінімальне значення графіка в машинних координатах по осях x та y відповідно.

x – змінна, з інтервалом зміни від x1 до x2 з кроком h.

yзначення функції.

lx,lyдовжина осі по x та y відповідно.

sx,syціле значення від розбиття осі на 10 частин по x та y відповідно.

tx,ty – змінна, значення якої відповідає довжині додатної осі по x та відємної по y відповідно.

xc,yc – центр графіка в точці x=0 по осях x та y відповідно.

xx,yy – змінна, яка відповідає за розбиття графіка на 10 частин по осях x та y відповідно.

t – тимчасова змінна.

xmax,xmin,ymax,ymin – мінімальне та максимальне значення функції по осях x та y відповідно.

txp,txm,typ,tym – змінні, які визначають положення тексту розмітки осей у додатному та від’мному напрямках x та y відповідно.

rect.bottom,rect.right – нижня та права сторона вікна, відповідає за розміри клієнтського вікна.

rect.top,rect.left – верхня та ліва сторона вікна, рівна 0.

Остаточно відлагоджений текст програми відповідно до отриманого завдання

// ChildView.cpp : implementation of the CChildView class

//

#include "stdafx.h"

#include "Lab_02.h"

#include "ChildView.h"

#include "math.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);

 wchar_t str[192];

 double kx,ky,x0,y0,x,y,lx,ly,sx,sy,xc,yc,tx,ty,xx,yy,t;

 double xmax=0,xmin=0,ymax=0,ymin=0,txp=0,txm=0,typ=0,tym=0;

 double x1=0,x2=16,h=0.1;

 

RECT rect;

GetClientRect(&rect);

 

 //vuzna4ennya xmax,xmin,ymax,ymin

 for(x=x1;x<=x2;x=x+h)

{

 y=pow(exp(x),1./8.)*sin(x/3);

 if(ymin>-y)

 {

  ymin=-y;

 }

 else if(ymax<-y)

 {

  ymax=-y;

 }

 if(xmin>x)

 {

  xmin=x;

 }

 else if(xmax<x)

 {

  xmax=x;

 }

}

 //znahodzhennya znachennja funkcii v tochci x=0

x=0;

y=pow(exp(x),1./8.)*sin(x/3);

 //znahodzhennya koeficientiv i centra realjnuh koordunat

kx=(rect.right-50)/(xmax-xmin);

ky=(rect.bottom-50)/(ymax-ymin);

x0=xmin*kx-25;

y0=ymin*ky-25;

xc=x*kx-x0;

yc=-y*ky-y0;

 

 //pobudova osej

dc.MoveTo(xc,rect.top+10);

dc.LineTo(xc,rect.bottom-10);

dc.MoveTo(rect.left+10,yc);

dc.LineTo(rect.right-10,yc);

dc.MoveTo(xc-5,rect.top+15);

dc.LineTo(xc,rect.top+10);

dc.LineTo(xc+5,rect.top+15);

dc.MoveTo(rect.right-15,yc-5);

dc.LineTo(rect.right-10,yc);

dc.LineTo(rect.right-15,yc+5);

 //poznachaemo osi

 const CString Y("Y"),X("X"),O("0");

dc.TextOutW(xc-20,rect.top+5,Y);

dc.TextOutW(rect.right-20,yc+5,X);

dc.TextOutW(xc+5,yc+5,O);

lx=(rect.right-10)-(rect.left+10);

ly=(rect.bottom-10)-(rect.top+10);

sx=floor(lx/10);

sy=floor(ly/10);

tx=rect.right-fabs(x0);

ty=rect.bottom-fabs(y0);

xx=(xmax-xmin)/10;

yy=(ymax-ymin)/10;

 //visj x

 for(t=sx;t<=-x0-30;t=t+sx)

{

 txm=txm-xx;

 dc.MoveTo(xc-t,yc-5);

 dc.LineTo(xc-t,yc+5);

 swprintf_s (str,50,L"%.1f",txm);

 dc.TextOut(xc-t-10,yc+5,str);

}

 for(t=sx;t<=tx-30;t=t+sx)

{

 txp=txp+xx;

 dc.MoveTo(xc+t,yc-5);

 dc.LineTo(xc+t,yc+5);

 swprintf_s (str,50,L"%.1f",txp);

 dc.TextOut(xc+t-10,yc+5,str);

}

 //visj y

 for(t=sy;t<=-y0-15;t=t+sy)

{

 typ=typ+yy;

 dc.MoveTo(xc-5,yc-t);

 dc.LineTo(xc+5,yc-t);

 swprintf_s (str,50,L"%.1f",typ);

 dc.TextOut(xc+10,yc-t-10,str);

}

 for(t=sy;t<=ty-15;t=t+sy)

{

 tym=tym-yy;

 dc.MoveTo(xc-5,yc+t);

 dc.LineTo(xc+5,yc+t);

 swprintf_s (str,50,L"%.1f",tym);

 dc.TextOut(xc+10,yc+t-10,str);

}

 //pobudova grafika

 for(x=x1;x<=x2;x=x+h)

{

 y=pow(exp(x),1./8.)*sin(x/3);

 if(x==x1)

 {

  dc.MoveTo(x*kx-x0,-y*ky-y0);

 }

 dc.LineTo(x*kx-x0,-y*ky-y0);

}

 

}

Результати виконання програми




1. Зоопсихология и сравнительная психология Формы контроля
2.  системный блок электроника ПК;2
3. I Темперамент и характер Потребности интересы и идеалы вообще установки и тенденции личности
4. за пояса топор и хочет рубить тот орган кислороднообменивающей единицы на который сел
5. САНКТПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ КУЛЬТУРЫ И ИСКУССТВ
6. Зеленой палочки
7. Этнические конфликты и пути их разрешения
8. КУРСОВА РОБОТА Виконала- Хоменко Н
9. Тема лекции- ДРЕВЕСИНА Раздел 3- Основные отделочные и поделочные материалы
10. Вибори та їх роль в політичному житт
11. тематизация заболеваний пародонта данные о симптоматике и генезе каждой нозологической формы пародонта поз
12. Лабораторная работа 5 по дисциплине Безопасность жизнедеятельности Отчёт
13. Вариант 2 1. Вычислить предел функции а ; б ; в ; г ; д
14. Реферат- Конституционное право зарубежных стран (контрольная).html
15. облачный сервис который предполагает что клиент удаленно в течение определённого времени может пользов
16. рублей Показатели 2013 год 2014 год
17. тема технічних технологічних елементів економічних комерційноправових організаційних методів управлін
18. Тема 1 Історія розвитку та методологія брендменеджменту
19. Методическое пособие для выполнения лабораторных работ по физике
20.  Определения толщины и состава материала по ослаблению рентгеновских лучей в нем