Documente Academic
Documente Profesional
Documente Cultură
Laboratorul NR 2 La Grafica Pe Calculator GC Conspecte MD
Laboratorul NR 2 La Grafica Pe Calculator GC Conspecte MD
1
Disciplina: “Grafica 2D”
(2k )!
, x ( , ).
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
double fact(int n)
{
double factorial = 1;
for(int i = 1; i <= n; i++)
{
factorial *= i;
}
return factorial;
}
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;
}
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));
}
pDC->SelectObject(&pen_cos);
x = a;
y = MyCos(x, E);
pDC->MoveTo(RClient.CenterPoint().x + (int)(x * scale),
RClient.CenterPoint().y - (int)(y * scale));
//step = 0.25;
for(x = a; x <= b; )
{
y = cos(x);
pDC->SetPixel(RClient.CenterPoint().x + (int)(x * scale),
RClient.CenterPoint().y - (int)(y * scale), RGB(0, 0, 0));
x += step;
}
pDC->SetTextColor(RGB(0, 0, 0));
pDC->SetTextAlign(TA_BOTTOM | TA_RIGHT);
CString func2 = L"y = cos(x)";
pDC->TextOut(RClient.Width() - 1, RClient.Height() - 1, func2,
func2.GetLength());
fishier1.setf(ios::fixed);
fishier2.setf(ios::fixed);
fishier1.precision(6);
fishier2.precision(6);
for(x = a; x <= b; x += step)
{
fishier1 << x << ' ' << cos(x) << ' ' << MyCos(x, E) << ' ' <<
fabs(cos(x) - MyCos(x, E)) << ' ' << E << endl;
fishier2 << x << ' ' << MyCos(x, E) << endl;
}
fishier1.close();
fishier2.close();
}
---------------------------------------------------------------------------------------------------------------
Programul în execuţie: