// Calculation Program for calculating shape of a flower with the use of a circle_f1z, 05 Mar., 2009

// file name: flower_f1z.c

#include< stdio.h>
#include< math.h>

void main(void)
{
	double a,pi;
	double r,f;
	double fmin,fmax,df;
	double x,y;
	double rr,ff;
	int n;
	double b,c;
	double d;
	double e;
	int i,imax,j;
	double xx[20001],yy[20001];

	FILE *fp;

// setting of the constants
	pi=3.14159265;
	a=1;

	b=0.;
	c=4;
	d=3;
	e=1.;

	printf("Input of numbers of petals. \n n=? ");
	scanf("%d",&n);
	printf("n=%d\n",n);
	printf("\n");

// setting of the other parameters
	fmin=-pi/2;
	fmax=3*pi/2;

	df=(fmax-fmin)/400;// [Note] When the number n of petals is as n > 40, it is necessary to change as "df=(fmax-fmin)/40;" in order to prevent the memory over.

	i=0;

// execution of calculation
	for(j=1;j<=n;j++)
	{
		for(f=fmin;f<=fmax;f=f+df)
		{
			i++;

			r=a;

			x=c*r*(1+b*sqrt(1-sin(f)))*cos(f);
			y=d*r*(1+b*sqrt(1-sin(f)))*sin(f)+d*a*(1+b*sqrt(2));

			rr=sqrt(x*x+y*y);

			ff=(f+(2*pi*j+(n-5)*pi/2))/n;
			
			xx[i]=(rr+e)*cos(ff);
			yy[i]=(rr+e)*sin(ff);

			printf("i=%d,x=%f,y=%f\n",i,xx[i],yy[i]);
		}
	}
	
	imax=i;

// writing the calculated coordinates data of the curve into a textfile
	fp=fopen("flower_f.txt","w");
	if(fp==NULL)
		{
		printf("FILE OPEN ERROR\n");
		}
	else
		{
		for(i=1;i<=imax;i++)
		{
			fprintf(fp,"%f,%f\n",xx[i],yy[i]);
		}
		fflush(fp);
		fclose(fp);
		}
	printf("end\n");
}// the end of the program



_ returning to the page which opened just before with 'return' of browser _

or

_ returning to the previous page of this site with the following button _


RETURN

updated: 2009.03.15, edited by N. Yamamoto