62#include "ramCanvas.hpp"
65typedef mjr::ramCanvas3c8b::colorType ct;
68std::vector<std::array<double, 9>> params {
70 { 0.566700, 0.00000, -0.50000, 0.00000, 10.0, -1.35, 1.35, -1.35, 1.35},
71 { 0.544992, 0.00000, -0.47000, 0.00000, 10.0, -1.35, 1.35, -1.35, 1.35},
72 { 0.269000, 0.00000, 0.00000, 0.01000, 5.0, -1.10, 1.10, -1.00, 1.00},
73 { -0.400000, 0.10000, 0.29550, 0.00000, 10.0, -1.10, 1.10, -1.50, 1.50},
74 { 0.400000, 0.00000, -0.25000, 0.00000, 10.0, -1.30, 1.20, -1.00, 1.00},
75 { 0.100000, 0.60000, -0.35000, 0.00000, 10.0, -1.30, 1.30, -1.30, 1.30},
76 { 0.400000, 0.40000, 0.20500, 0.00000, 30.0, -1.30, 1.30, -1.30, 1.30},
77 { 0.400000, 0.50000, 0.20500, 0.00000, 30.0, -1.30, 1.30, -1.30, 1.30},
82 std::chrono::time_point<std::chrono::system_clock> startTime = std::chrono::system_clock::now();
83 const int WIDTH = 1920*4;
84 const int HEIGHT = 1920*4;
85 const int NUMITR = 500;
86 const double MAXZ = 4.0;
88# pragma omp parallel for schedule(static,1)
89 for(
decltype(params.size()) j=0; j<params.size(); ++j) {
90 const std::complex<double> c(params[j][0], params[j][1]);
91 const std::complex<double> p(params[j][2], params[j][3]);
92 mjr::ramCanvas3c8b theRamCanvas(WIDTH, HEIGHT, params[j][5], params[j][6], params[j][7], params[j][8]);
93 for(
int y=0;y<theRamCanvas.getNumPixY();y++) {
94 for(
int x=0;x<theRamCanvas.getNumPixX();x++) {
95 std::complex<double> z1(theRamCanvas.int2realY(y), theRamCanvas.int2realX(x));
96 std::complex<double> z2(0.0, 0.0);
98 while((std::norm(z1)<MAXZ) && (count<=NUMITR)) {
99 std::complex<double> z = z1*z1+c+p*z2;
105 theRamCanvas.drawPoint(x, y, ct::csCCfractal0RYBCW::c(
static_cast<ct::csIntType
>(count*params[j][4])));
108 theRamCanvas.writeTIFFfile(
"phoenix_" + mjr::math::str::fmt_int(j, 2,
'0') +
".tiff");
109 std::cout <<
"ITER(" << j <<
"): " <<
"DONE" << std::endl;
112 std::chrono::duration<double> runTime = std::chrono::system_clock::now() - startTime;
113 std::cout <<
"Total Runtime " << runTime.count() <<
" sec" << std::endl;
int main(int argc, char *argv[])