Rose Curve

Roses specified by the sinusoid
r=cos(k * theta) for various rational numbered values of the angular frequency k=n/d.
Roses specified by r=sin(k * theta ) are rotations of these roses by one-quarter period of the sinusoid in a counter-clockwise direction about the pole (origin). For proper mathematical analysis, k must be expressed in irreducible form.

Log in to post a comment.

// Rose Curve
// From Python Turtle - Lissajous Curve - www.101computing.net/python-turtle-lissajous-curve/
// See: https://en.wikipedia.org/wiki/Rose_(mathematics)
// Released under the MIT licence 
// https://mit-license.org/
// you can use this for commercial gain if you like eg you can sell artworks with this image.

// You can find the Turtle API reference here: https://turtletoy.net/syntax
Canvas.setpenopacity(1);

// Global code will be evaluated once.
const turtle = new Turtle();
const scale = 95;  //min=10 max=100 step=1
const A = scale;
const B = scale;
const n = 6; //min=1 max=100 step=0.1
const d = 1; //min=1 max=100 step=0.1
const delta = 3.14/2;
const steps = 630; //min=10 max=4800 step=1
const stepsize = 0.01; //min=0.006 max=1 step=0.01
var t=0;

turtle.penup();

// The walk function will be called until it returns false.
function walk(i) {
    if(i >0){
    turtle.pendown();
    }
    t += stepsize;
    k = n/d;
    // Apply Lissajous Parametric Equations
    x = A * Math.cos(k*t) * Math.cos(t);
    y = A * Math.cos(k*t) * Math.sin(t);
    turtle.goto(x,y)
    return i < steps;
}