Cześć,
Na początek - nie jestem i nie będę programistą, mam do zaliczenia programowanie obiektowe. Temat zadania - napisać klasę liczącą wartości dwóch funkcji, dodanie tych wartości oraz zapisanie wszystkiego (jednej i drugiej funkcji i ich sumy) jako wykres w pliku ppm3.
Pierwsza część jest prosta i tutaj sobie poradziłem.
Mam problem z zapisem do ppm3. W sieci znalazłem tylko specyfikację formatu i małe przykłady. Chciałem zacząć od "narysowania" białej kartki, a potem pokombinować z przeskalowaniem wartości i naniesieniem tego na białą kartkę. Jeśli zapisuję moją kartkę, 800x800, wartościami 255, to niestety tylko początek jest biały. Nie potrafię, na tę chwilę, tego przeskoczyć. Docelowo mam w planie pisać wartości do tablicy dwuwymiarowej, teraz testowo chciałem sprawdzić "wszystko na biało". Załączam moje wypociny i proszę o sugestię/wskazówki/pomoc.
#include <iostream>
#include <cmath>
#include <fstream>
const char *FILENAME = "test.ppm";
const int SIZE = 800;
using namespace std;
class addFunctions{
private:
float min;
float max;
public:
addFunctions() {min = -10;max = 10;}
addFunctions(float min, float max) {
this->min = min;
this->max = max;}
int getMin(void){return min;}
int getMax(void){return max;}
float fun1 (float x){return cos(x);}
float fun2 (float x){return sin(x) * sin(x);}
float addFun(float x){return fun1(x) + fun2(x);}
void write() {
ofstream outfile;
outfile.open(FILENAME);
outfile << "P3\n" << SIZE << " " << SIZE << "\n255\n";
for (int i=0; i<SIZE; i++) {
for (int j=0; j<SIZE; j++) {
outfile << 255 << " ";
}
outfile << endl;
}
outfile.close();
}
};
int main(){
addFunctions X(-2,2);
// for(int i = X.getMin(); i <= X.getMax(); i++){
// cout << "Dla x = " << i << " cosx = " << X.fun1(i) << endl;
// cout << "Dla x = " << i << " sinx * sinx = " << X.fun2(i) << endl;
// cout << "Dla x = " << i << " cosx + sinx*sinx = " << X.addFun(i) << endl;}}
X.write();
}