Witam wszystkich serdecznie,
Mam do napisania program z GUI, który będzie wyświetlał wykresy w 3D i niestety mam problem.
Chodzi o to, że nie wiem jak generować te wzory funkcji, tzn ma to być wykres funkcji f(x,y).
Napiszę może mniej wiecej jak to zaczynam robić.
W programie generuje 6 wektorów x_start,x_end,y_start,z_end,z_start, następnie i tu mam problem chciałbym je wypełnić wartościami no i właśnie nie wiem jak to zrobić. Np chciałbym narysować funkcje f(x,y)=x2+y2. Niestety wychodzi mi jakaś płaszczyzna.
Później już te wektory wykorzystuje do obliczeń. Tzn mam macierze przekształceń i na końcu tą wynikową macierz mnoże razy te wektory. Na końcu z tych wektorów biorę x_start i y_start i x_end i y_end i robię drawLine i to wszysko w pętli, może dam też przykład kodu, bo trochę to mało po polsku napisałem.
for(double i = -1;i<1;i+=0.1) {
m.push_back(i);
n.push_back(i*i);
}
for(int i = 0;i<200;i++) {
x_start.push_back(m[i]);
x_end.push_back(m[i]+0.1);
y_start.push_back(n[i]);
y_end.push_back(n[i]+0.1);
z_start.push_back(m[i]*n[i]);
z_end.push_back(m[i]*n[i]+0.1);
// if(i<255) {
R.push_back(i%255);
G.push_back(255-i%255);
B.push_back(100);
//}
}
macierz = macierzRotacjaX()*macierzRotacjaY()*macierzRotacjaZ()*macierzSkalowanie();
for(int i = 0;i<x_start.size();i++) {
vector.Set(x_start[i],y_start[i],z_start[i]);
vector2.Set(x_end[i],y_end[i],z_end[i]);
vector = macierz*vector;
vector2 = macierz*vector2;
d1 = vector.GetZ()-vector2.GetZ();
d2 = vector2.GetZ();
bdc.SetPen(wxPen(wxColour(R[i],G[i],B[i])));
bdc.DrawLine(vector.GetX(),-vector.GetY(),vector2.GetX(),-vector2.GetY());
}
Jakby ktoś był tak miły i podpowiedział jak wypełniać te wektory, aby uzyskać ładny wykres, albo zarzucił jakimś linkiem, gdzie to jest mniej więcej wytłumaczone.