Chrysanthemum CurveWritten by Paul Bourke
Attributed to Temple Fay
The chrysanthemum curve is given in polar coordinates by the following
and in Cartesian coordinates y = r sin(u)
![]()
#include "stdlib.h"
#include "stdio.h"
#include "math.h"
typedef struct {
double x,y,z;
} XYZ;
#define N 30000
int main(int argc,char **argv)
{
int i;
double u,r,p4,p8;
XYZ p,plast;
for (i=0;i<=N;i++) {
u = i * 21.0 * PI / N;
p4 = sin(17 * u / 3);
p8 = sin(2 * cos(3 * u) - 28 * u);
r = 5*(1 + sin(11*u/5)) - 4*p4*p4*p4*p4 * p8*p8*p8*p8*p8*p8*p8*p8;
p.x = r * cos(u);
p.y = r * sin(u);
p.z = (r/20+.2)*sin(r*TWOPI/7);
if (i > 0)
--- write the line plast -> p in your favourite format ---
plast = p;
}
}
Anaglyph contribution by Jean Tousset. ![]() [Click for higher resolution version] |