このコードを使用して円の画像を生成しようとしています。
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
double e, f;
double scaler (double a, double b) {
if (a < 256) { e = (-1) * a / 256.0;
if (b < 256) {
f = b / 256.0;
} else {
f = (-1) * (b - 256.0) / 256.0;
}
} else { e = (a - 256.0) / 256.0;
if (b < 256) {
f = b / 256.0;
} else {
f = (-1) * (b - 256.0) / 256.0;
}
}
return e, f;
}
int main () {
int max_color = 255;
int dimention = 512;
ofstream fout;
fout.open("mandeloutput.ppm");
fout << "P3\n" << dimention << " " << dimention << endl << max_color << endl;
for (int i = 0; i < dimention; i++) { f = i;
for (int j = 0; j < dimention; j++) { e = j;
scaler (e, f);
cout << fixed << setprecision(5) << e << " " << f << endl;
if ( e*e + f*f <= 1) {
fout << right << setw(4) << 0 << setw(4) << 0 << setw(4) << 0 << " ";
} else {fout << right << setw(4) << 255 << setw(4) << 255 << setw(4) << 255 << " ";}
}
fout << endl;
}
}
変数eが常に 0 である理由と、タイトルに記載されているスケーラー内の変数に関するエラーが表示される理由がわかりません。