Maurer Roses

:extension NoMonomorphismRestriction FlexibleContexts TypeFamilies

:opt svg
:opt no-lint
import Diagrams.Prelude
import Diagrams.Backend.Cairo
import Data.Fixed
fromDeg d = d*pi/180

x r t = r*(cos t)
y r t = r*(sin t)
rosePts n = [(sin(n*t)*cos t,sin(n*t)*sin t) | t <- [0,0.01..(2*pi+0.01)::Double]]
roseDia n = diagram $ fromVertices (map p2 (rosePts n))
    #lc red
    #lw 3
    #frame 0.1
writeSVG fp w dia = renderCairo fp (mkWidth w) dia
diagram $ roseDia 3
Sorry, your browser does not support SVG.
segPts n d = [(x (sin(n*t)) t, y (sin(n*t)) t) | t <- ts]
    where
        ks = [0,d..360*d]
        ts = map fromDeg ks
segDia n d = diagram $ fromVertices (map p2 (segPts n d))
    #lc blue
    #lw 0.5
maurerDia n d = diagram $ mconcat [roseDia n, segDia n d]
diagram $ maurerDia 2 29
Sorry, your browser does not support SVG.

Author: Ryan Jensen (ryan.jensen@mathnotes.cc)

Modified: 2020-06-05 Fri 13:48

Generated with: Emacs 26.3 (Org mode 9.3.7)