34#include "ramCanvas.hpp"
35#include "MRMathCPP.hpp"
39 std::chrono::time_point<std::chrono::system_clock> startTime = std::chrono::system_clock::now();
40 const int IMXSIZ = 7680/1;
41 const int IMYSIZ = 7680/1;
45 const int steps = 150;
46 const double tDelta = 0.01;
48 mjr::ramCanvas3c8b theRamCanvas(IMXSIZ, IMYSIZ, -17, 17, -17, 17);
49 theRamCanvas.clrCanvasToBlack();
51# pragma omp parallel for schedule(static,1)
52 for(
int y=0;y<theRamCanvas.getNumPixY();y++) {
54 std::cout << y << std::endl;
55 for(
int x=0;x<theRamCanvas.getNumPixX();x++) {
56 double px = theRamCanvas.int2realX(x);
57 double py = theRamCanvas.int2realY(y);
59 for(
int i=0; i<steps; i++) {
60 double pxNew = px + a * (py - px) * tDelta;
61 double pyNew = py + (px * (b - pz) - py) * tDelta;
62 double pzNew = pz + (px * py - c * pz) * tDelta;
67 double r = mjr::math::ivl::wrapCO(atan2(px,py)+2*px, 1.0);
68 double b = mjr::math::ivl::wrapCO(atan2(px,py)+py, 1.0);
69 double g = mjr::math::ivl::wrapCO(pz/61, 1.0);
70 theRamCanvas.getPxColorRefNC(x, y).setChansRGB_dbl(r, g, b);
73 theRamCanvas.writeTIFFfile(
"wakOrb03.tiff");
74 std::chrono::duration<double> runTime = std::chrono::system_clock::now() - startTime;
75 std::cout <<
"Total Runtime " << runTime.count() <<
" sec" << std::endl;
int main(int argc, char *argv[])