Cuprins
- Conditii 2
- Cod Sursa 2
- Functia Standarda 2
- Functia Utilizator 2
- Functia OnDraw 3
- Rezultat Executie 6
- Testarea valorilor graficului 7
- Concluzii 9
Extras din laborator
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 care ar interpreta in mod grafic atat functia standarda cat si functia descompusa in serie, graficele trebuie sa coincida si diferenta dintre valorile celor 2 grafice sa nu depaseasca o precizie minimala stabilita de utilizator.
Cod Sursa
Functia Standarda
double CSanduView::ln_Standard_Function(double x, double scale, CDC*pDC, CRect rcClient)
{
double real_y;
real_y = log(1+x);
pDC->SetPixel((rcClient.CenterPoint().x)+(x*scale),(rcClient.CenterPoint().y)-(real_y*scale),RGB(255,0,0));
return real_y;
}
Functia Utilizator
double CSanduView::Sandu_Function(double x, double scale, CDC*pDC, CRect rcClient)
{
CPen mypencik(PS_SOLID, 1, RGB(0, 255, 0));
pDC->SelectObject(&mypencik);
double real_y = 0;
double new_value = x;
// primul termen = x, adica primul y=x
for (int k = 1; k < 1000; k++)
// 1000 termeni, exactitate mai mare
{
real_y += new_value;
new_value = ((-1 * x*k) / (k + 1))*new_value;
// yn este urmatorul termen
//Tn+1 = r*Tn
}
if (x == 1) {
pDC->MoveTo(rcClient.CenterPoint().x + (int)(x*scale), rcClient.CenterPoint().y - (int)(real_y*scale));
}
else {
pDC->LineTo(rcClient.CenterPoint().x + (int)(x*scale), rcClient.CenterPoint().y - (int)(real_y*scale));
}
return real_y;
}
Preview document
Conținut arhivă zip
- Grafica pe calculator - Biblioteci grafice 2D.docx