42#include "ramCanvas.hpp"
44typedef mjr::ramCanvas3c8b rct;
48 std::chrono::time_point<std::chrono::system_clock> startTime = std::chrono::system_clock::now();
51 double ar =
static_cast<double>(width) /
static_cast<double>(height);
52 rct theRamCanvas(width, height, -1.2*ar, 1.2*ar, -1.2, 1.2);
53 const int NUMITR = 50;
55# pragma omp parallel for schedule(static,1)
56 for(rct::coordIntType y=0; y<theRamCanvas.getNumPixY(); y++) {
57 for(rct::coordIntType x=0; x<theRamCanvas.getNumPixX(); x++) {
58 rct::coordFltType cr = theRamCanvas.int2realX(x);
59 rct::coordFltType ci = theRamCanvas.int2realY(y);
60 rct::coordFltType zr = 0;
61 rct::coordFltType zi = 0;
63 while ((std::abs(zr) < 50) && (std::abs(zi) < 50) && (count < NUMITR)) {
64 rct::coordFltType tmp = 2 * zr * zi + cr;
65 zi = std::abs(zi) - std::abs(zr) + ci;
70 theRamCanvas.drawPoint(x, y, rct::colorType::csCCsumBRG::c(
static_cast<rct::colorType::csIntType
>(count*20)));
72 theRamCanvas.drawPoint(x, y,
"red");
75 theRamCanvas.scaleDownMean(9);
76 theRamCanvas.drawString(
"MWU. M", mjr::hershey::font::ROMAN_SL_SANSERIF, theRamCanvas.getNumPixX()-130, 200-30,
"white", 1, 20);
77 theRamCanvas.drawString(
"2025 ", mjr::hershey::font::ROMAN_SL_SANSERIF, theRamCanvas.getNumPixX()-130, 200-60,
"white", 1, 20);
78 theRamCanvas.drawString(
" -m", mjr::hershey::font::ROMAN_SL_SANSERIF, theRamCanvas.getNumPixX()-130, 200-90,
"white", 1, 20);
79 theRamCanvas.writeTIFFfile(
"heartFrac.tiff");
80 std::chrono::duration<double> runTime = std::chrono::system_clock::now() - startTime;
81 std::cout <<
"Total Runtime " << runTime.count() <<
" sec" << std::endl;
int main(int argc, char *argv[])