Note

This Mathematica notebook is from the WWW project A Visual Dictionary of Special Plane Curves. Copyright © 1995-2000 by Xah Lee. (http://xahlee.org/)

Packages and Initializations

Needs["ParaPlot`"]
Needs["PlaneCurveFormulas`"]
Needs["PlaneCurveGenerator`"]

Needs["Graphics`ImplicitPlot`"]
(*MathSource Item:0200-529*)

$HistoryLength = 5;

Needs["TrochoidPlot`"]

Needs["TrochoidShow`"]

Rose

Description

Roses Variety

The following are graphics of a variety of roses.

Show@GraphicsArray@(Partition[#, 
                  5] &)@((With[{p = Numerator@#, q = Denominator@#}, 
                      ParametricPlot[
                        Evaluate@
                          ReplaceAll[Cos[p/q*t]*{Cos@t, Sin@t}, 
                            t -> (q/If[OddQ@p && OddQ@q, 2, 1]*t)], {t, 
                          0, 2*Pi}, AspectRatio -> Automatic, Axes -> False, 
                        PlotStyle -> {Hue[ .7]}, 
                        Prolog -> {Text[DisplayForm@FractionBox[p, q], 
                              Scaled[{1, 1}], {1, 1}]}, 
                        DisplayFunction -> 
                          Identity]] &) /@ (Union@(Join[#, 
                            Range[2, 6]] &)@Flatten@
                        Table[p/q, {q, 7}, {p, 
                            q*2}]));

Rose

Rose generated as a hypotrochoid.

RoseGenerator[3, {0, 5.6,.05}, LastFrameOnly->True];

ParaPlot[ Rose[4][x], {x,0,2*Pi}, AspectRatio->Automatic];

Properties

Double generation

Rose also have double generation

Clear[n]; n = 4; 
HypoTrochoidPlot[(2/3), {(1/3)}, 
        RotationRange -> {0, 
            2* 2* π, ((2 *2 *π)/(19 *3))}, 
        CirclesOn -> True, NumberOfSpokes -> 1, Axes -> False, 
        DiskStyle -> {Hue[ .18, 1, 0]}, 
        DotStyle -> {{Hue[0], PointSize[ .02]}}, 
        SpokeStyle -> {{Hue[ .35, 1,  .5], 
              Thickness[ .013]}, {Hue[ .7, 1,  .9], 
              Thickness[ .013]}, {Hue[ .35, 1,  .5], 
              Thickness[ .013]}}];

Inversion of rose

Rose Inverts to Epispirals with inversion point at its center.

ParaPlot[Rose[4][t], {t, 0, 2 π, (2*Pi)/500}, 
        InversionCircle -> {{0, 0},  .8}, PlotDot -> False, 
        PlotRange -> {{-1, 1}, {-1, 1}} 3.5, 
        AspectRatio -> Automatic, 
        CurveColorFunction -> {Hue[ .7] &}, 
        CurveStyle -> {Thickness[0.004]}, 
        DotStyle -> {{PointSize[ .006], Hue[0]}}, 
        Background -> GrayLevel[0], Axes -> False];

Radial of a rose

ParaPlot[Rose[3][t], {t, 0, π, Pi/120}, 
        PlotRadial -> True, PlotDot -> False, 
        LineStyle -> {Hue[0]}, 
        AspectRatio -> Automatic];