Grafică pe calculator

Laborator
4/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 4 în total
Cuvinte : 558
Mărime: 51.00KB (arhivat)
Publicat de: Marin Crăciun
Puncte necesare: 0

Extras din laborator

Condiţia: Să se scrie un program MFC de tipul single document care va desena în fereastra aplicaţiei graficul funcţiei y = cos(x) şi va înscrie date în 2 fişiere.

Primul fişier va conţine:

- valoarea argumentului

- valoarea funcţiei standarte în punctul stabilit

- valoarea funcţiei proprii în acelaşi punct

- valoarea absolută a diferenţei dintre valoarea funcţiei standarte şi a funcţiei proprii

- precizia

Al doilea fişier va conţine:

- valoarea argumentului

- valoarea funcţiei prorii in punctul stabilit

Funcţia proprie va fi calculată cu ajutorul seriei:

Codul programului:

GraficaLabView.cpp

#include "stdafx.h"

#include "GraficaLab1.h"

#include "GraficaLab1Doc.h"

#include "GraficaLab1View.h"

#include <cmath>

#include <fstream>

#include <iostream>

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

using namespace std;

double fact(int n)

{

double factorial = 1;

for(int i = 1; i <= n; i++)

{

factorial *= i;

}

return factorial;

}

double MyCos(double x, double E)

{

double value = 0, term_serie;

int k = 0;

do

{

term_serie = pow(-1.0, k) * pow(x, 2 * k) / fact(2 * k);

value += term_serie;

k++;

}

while(fabs(term_serie) > E);

return value;

}

void CGraficaLab1View::OnDraw(CDC* pDC)

{

CGraficaLab1Doc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

if (!pDoc)

return;

else

{

CRect RClient;

GetClientRect(&RClient);

int nrseg = 100;

double E = 0.0001, scale = 60, a = (-RClient.Width() / 2) / scale, b = (RClient.Width() / 2) / scale, step = (b - a) / nrseg;

double x,y;

double ah = (-RClient.Height() / 2) / scale, bh = (RClient.Height() / 2) / scale;

CPen pen_axis(PS_SOLID, 2, RGB(0, 0, 255));

CPen pen_cos(PS_SOLID, 1, RGB(255, 0, 0));

CPen pen_divisions(PS_SOLID, 2, RGB(0, 255, 0));

CPen *current_pen = pDC->SelectObject(&pen_axis);

pDC->MoveTo(0, RClient.CenterPoint().y);

pDC->LineTo(RClient.Width() - 1, RClient.CenterPoint().y);

pDC->MoveTo(RClient.CenterPoint().x, 0);

pDC->LineTo(RClient.CenterPoint().x, RClient.Height() - 1);

pDC->SelectObject(pen_divisions);

for(x = ceil(a); x <= b; ++x)

{

pDC->MoveTo(RClient.CenterPoint().x + (int)(x * scale), RClient.CenterPoint().y - 3);

pDC->LineTo(RClient.CenterPoint().x + (int)(x * scale), RClient.CenterPoint().y + 3);

}

for(y = ceil(ah); y <= bh; ++y)

{

pDC->MoveTo(RClient.CenterPoint().x - 3, RClient.CenterPoint().y - (int)(y * scale));

pDC->LineTo(RClient.CenterPoint().x + 3, RClient.CenterPoint().y - (int)(y * scale));

Preview document

Grafică pe calculator - Pagina 1
Grafică pe calculator - Pagina 2
Grafică pe calculator - Pagina 3
Grafică pe calculator - Pagina 4

Conținut arhivă zip

  • Grafica pe Calculator.doc

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Grafică pe calculator - Biblioteci grafice 2D

Conditii Varianta 7 ln(1+x) = -∑_(k=0)^∞▒〖(-1)〗^(k+1)*x^2/k , x ∈ (-1,1] De elaborat un program in C++ utilizand Microsoft Foundation Classes...

Probleme de Programarea Calculatoarelor

PREZENTAREA GENERALA IDE (1) Turbo C++, produs al firmei Borland International, este un pachet de programe care ofera o implementare a...

Te-ar putea interesa și

Execuția prin Deformare Plastică la Cald a Reperului Ax cu Cap Sferic

1. Enuntul temei: Sa se proiecteze tehnologia si echipamentul tehnologic necesar pentru executia prin deformare plastica la cald a reperului ax cu...

Întocmirea planului anual de producție

- Introducere: Întocmirea unui plan anual de producție este esențială pentru funcționarea exploatației în condiții optime. Planificarea...

Proiect statistică

Introducere Majoritatea fenomenelor si proceselor din viaţa cotidiană, tehnică, medicină, economie, socilogie, politică nu sunt de tip...

Grafică pe calculator

1.Introducere - Grafica pe Calculator 1.1 Grafica pe Calculator Grafica pe calculator sunt grafice create cu ajutorul calculatoarelor prin...

Alimentarea Centralizată cu Căldură a Localității Drochia

1.Caracteristica obiectului. Localitatea – Drochia; Norma ariei suprafeţei totale din clădirile de locuit raportată la 1 persoană: f=18...

Gestiunea financiar-contabila

Pentru a realiza acest proiect, am ales să studiez evoluția următoarelor trei firme Mat Craiova SA, Foraj Sonde SA și ChimComlex SA Borzești...

Studiul termodinamic al reacției sulfurii de zinc cu oxigenul

CAPITOLUL I Notiuni introductive Termodinamica studiaza din punct de vedere energetic proprietatile generale ale substantelor si legile care...

Determinarea caracteristicilor pompelor - Extrat apos de malț

Determinarea caracteristicilor pompelor - Extrat apos de malt 1. ρ=1140kg/m3] vâscozității cinematice ν= 3,0701 [m2/s] vâscozității dinamice...

Ai nevoie de altceva?