/*
 *  https://en.wikipedia.org/wiki/Rose_(mathematics)
 *  k == number of petals
    x = cos( k theta ) * cos( theta ) 
    y = cos( k theta ) * sin( theta ) 
    * 
    * build commands:
    * g++ -Wall -o "%e" "%f" -lboost_iostreams -lboost_system -lboost_filesystem `pkg-config --cflags --libs sdl2`
 */
#include <iostream>
#include <fstream>
#include <math.h>
#include "/usr/include/gnuplot-iostream.h"

using namespace std ;
int main(){
	
	Gnuplot gp;
    ofstream plot;
	plot.open("rose.dat");
    const double pi = 3.14159265359;
    double  theta = 0;
    int    k = 8; //N of Petals
    double r,r1,r2 = 0;
     
    double xx = 0;
    double yy = 0;


for(int t=0; t<=20; t++){
	theta =(t*pi)/180;
	r = cos(k*theta);
     xx = cos((k)*theta)*cos(theta);
     //yy = sin(theta)*sin(r); 
     //yy = cos(k*theta)*sin(r); 
     //yy = cos(k*theta)*sin(theta); theta =(t*pi)/180;
	r1 =12*cos(r);
	r2 =-12*cos(k*theta);
    yy = cos(k*theta)*sin(theta); 
     

//cout << r << " " << xx << " " << yy << endl;  	
plot << r << " "<< r1 << " "<< r2 << " " << xx << " " << yy << endl;  	
	}
plot.close();
//gp<<"gnuplot\n";
gp << "set polar\n";
	//gp << "plot \"rose.dat\" using 1 with lines\n";
	//gp << "plot \"rose.dat\" using 2 with lines\n";
	gp << "plot \"rose.dat\" using 3 with lines\n";
	//gp << "";

return 0;
}