Flower in Motion (v2)
Now instead of 2 it is generalized to f1/f2:
const angle2 = (f1 / f2) * angle1;
x1 = radius1 * Math.cos((angle2 + angleOffset)) * Math.sin(angle1 + angleOffset);
y1 = radius1 * Math.sin((angle2 + angleOffset)) * Math.sin(angle1 + angleOffset);
x2 = radius2 * Math.cos(angle1 + angleOffset) * Math.sin(angle2 + angleOffset);
y2 = radius2 * Math.sin(angle1 + angleOffset) * Math.sin(angle2 + angleOffset);