45#include "ramCanvas.hpp"
49 std::chrono::time_point<std::chrono::system_clock> startTime = std::chrono::system_clock::now();
51 const int maxitr = 1024;
52 const double maxzsq = 10.0;
53 const int width = 7680/2;
54 const int height = 4320/2;
55 const double ar =
static_cast<double>(width) /
static_cast<double>(height);
56 mjr::ramCanvas3c8b theRamCanvas(width, height, -3.3, 3.3, -3.3/ar, 3.3/ar);
58#pragma omp parallel for schedule(static,1)
59 for(
int y=0;y<theRamCanvas.getNumPixY();y++) {
60 for(
int x=0;x<theRamCanvas.getNumPixX();x++) {
61 std::complex<double> c = theRamCanvas.int2real(x, y);
62 std::complex<double> z(0.5, 0.0);
64 while((std::norm(z)<maxzsq) && (count<=maxitr)) {
65 z = (c + 1.0) * z * (1.0 - z);
69 theRamCanvas.drawPoint(x, y,
decltype(theRamCanvas)::colorType::csCColdeFireRamp::c(
static_cast<decltype(theRamCanvas)::csIntType
>(count*10)));
73 theRamCanvas.writeTIFFfile(
"mandeldragon.tiff");
75 std::chrono::duration<double> runTime = std::chrono::system_clock::now() - startTime;
76 std::cout <<
"Total Runtime " << runTime.count() <<
" sec" << std::endl;
int main(int argc, char *argv[])