less tightly "curled". IFS construction If using an iterated function system (IFS, or the chaos game IFS-method actually), then the construction of the C curve is a bit easier. It will need a set of two "rules" which are: Two points in a plane (the translators), each associated with a scale factor of 1/. The first rule is a rotation of 45° and the second −45°. This set will iterate a point [x, y] from randomly choosing any of the two rules and use the parameters associated with the rule to scale/rotate and translate the point using a 2D-transform function. Put into formulae: from the initial set of points . Sample Implementation of Levy C Curve // Java Sample Implementation of Levy C Curve import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JFrame; import javax.swing.JPanel; import java.util.concurrent.ThreadLocalRandom; public class C_curve extends JPanel { public float x, y, len, alpha_angle; public int iteration_n; public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; c_curve(x, y, len, alpha_angle, iteration_n, g2d); } public void c_curve(double x, double y, double len, double alpha_angle, int iteration_n, Graphics2D g) { double fx = x; double fy = y; double length = len; double alpha = alpha_angle; int it_n = iteration_n; if (it_n > 0) { length = (length / Math.sqrt(2)); c_curve(fx, fy, length, (alpha + 45), (it_n - 1), g); // Recursive Call fx = (fx + (length * Math.cos(Math.toRadians(alpha + 45)))); fy = (fy + (length * Math.sin(Math.toRadians(alpha + 45)))); c_curve(fx, fy, length, (alpha - 45), (it_n - 1), g); // Recursive Call } else { Color[] A = {Color.RED, Color.ORANGE, Color.BLUE, Color.DARK_GRAY}; g.setColor(A[ThreadLocalRandom.current().nextInt(0, A.length)]); //For Choosing Different Color Values g.drawLine((int) fx, (int) fy, (int) (fx + (length * Math.cos(Math.toRadians(alpha)))), (int) (fy + (length * Math.sin(Math.toRadians(alpha))))); } } public static void main(String[] args) { C_curve points = new C_curve(); points.x = 200; // Stating x value points.y = 100; // Stating y value points.len = 150; // Stating length value points.alpha_angle = 90; // Stating angle value points.iteration_n = 15; // Stating iteration value JFrame frame = new JFrame("Points"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(points); frame.setSize(500, 500); frame.setLocationRelativeTo(null); frame.setVisible(true); } } See also Dragon curve Pythagoras tree (fractal) References Paul Lévy, Plane or Space Curves and Surfaces Consisting of Parts Similar to the Whole (1938), reprinted in Classics on Fractals Gerald A. Edgar ed. (1993) Addison-Wesley Publishing . E. Cesaro, Fonctions continues sans dérivée, Archiv der Math. und Phys. 10