#
A Rose for Rose

Copyright 2002 Mike Perry <mikepery@fscked.org>

GPL, yada yada.

Sides[0] := 3;

Sides[n] := 4*Sides[n-1];

Added_Param[n] := Sides[n-1]*LengthPerSide[n];

Goal: Build list of points

next iteration inserts new relevant points between each pair. Can this be done in mathematica?

In 2D space, the points on the line A_._._B are A plus 1/3 of the components in x and y of the vector from A to B, and A plus 2/3 of the components in x and y of the vector from A to B.. I can't visualize in 3D, but this seems like it should extend.

##
LiveGraphics3D Code

This code is not mine. It is from the LiveGraphics3D package used to render Mathematica graphics in 3D.

##
Utility Functions

##
The Rose

##
Iteration Work

This is where all the iterative triangle generation is done.

##
Bloody Hacks

This function adds some curl to the tips of the initial triangle (we can't do this in iteration because roating the tips of that triangle would just raise our initial triangle. Luckily I didn't have to find this out the hard way ;)

##
The Rose itself.

##
Stems

This function simply draws several sine waves of varing phase and rotation relative to axis defined by the normal and centroid vectors of the rose.

##
Plotting Code (Run me!)

#####
Main()

Converted by *Mathematica*
July 24, 2002