Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 20.5.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. ний парк Африки
3.  Дополните 1 Наличие в периферической крови эритроцитов различной величины называется
4. Андо Хиросигэ
5. О Положении об управлении образования мэрии города Череповца с последующими изменениями и дополнениями
6. Для этого она должна обеспечить растение элементами питания водой корневые системы достаточным количест
7. Деловое письмо- правило и стиль изложения
8. В Марина Георгиевна всерьёз задумалась над тем выдержит ли её вес вон та люстра над третьей партой
9. Реферат- Одежда деловой женщины
10. нынешний и век минувший
11. прпАлександра Свирского дерзнула таки привлечь православных петрозаводчан в путешествие на земную родину
12. Природный рекреационный потенциал и рекреационное зонирование территории Рязанской области
13. Научные ресурсы мира
14. Стаття 23 зазначено що кожна людина має право на вільний розвиток своєї особистості якщо при цьому не порушу
15. МЕРИДИАН ДК Металлург Телефон кассы киноцентра
16. Метрология негіздер
17. і Синоптикалы~ метеорология 100 кмден жо~ары ~арай орналас~ан атмосфера ~абаты
18. ТОМСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ ТГПУ Факультет психологии связей с общественнос
19. Лабораторная работа 3 Тема- Решение задач элементарной математики Вариант 11 Выполнил- сту
20. Введение4