R: Fractal Curves

fractalcurve {pracma} | R Documentation

## Fractal Curves

### Description

Generates the following fractal curves: Dragon Curve, Gosper Flowsnake Curve, Hexagon Molecule Curve, Hilbert Curve, Koch Snowflake Curve, Sierpinski Arrowhead Curve, Sierpinski (Cross) Curve, Sierpinski Triangle Curve.

### Usage

    fractalcurve(n, which = c("hilbert", "sierpinski", "snowflake",
        "dragon", "triangle", "arrowhead", "flowsnake", "molecule"))

### Arguments

`n` | integer, the ‘order’ of the curve
`which` | character string, which curve to cumpute.

### Details

The Hilbert curve is a continuous curve in the plane with 4^N points.

The Sierpinski (cross) curve is a closed curve in the plane with 4^(N+1)+1 points.

His arrowhead curve is a continuous curve in the plane with 3^N+1 points, and his triangle curve is a closed curve in the plane with 2*3^N+2 points.

The Koch snowflake curve is a closed curve in the plane with 3*2^N+1 points.

The dragon curve is a continuous curve in the plane with 2^(N+1) points.

The flowsnake curve is a continuous curve in the plane with 7^N+1 points.

The hexagon molecule curve is a closed curve in the plane with 6*3^N+1 points.

### Value

Returns a list with `x, y` the x- resp. y-coordinates of the generated points describing the fractal curve.

### Author(s)

Copyright (c) 2011 Jonas Lundgren for the Matlab toolbox `fractal curves` available on MatlabCentral under BSD license; here re-implemented in R with explicit allowance from the author.

### References

Peitgen, H.O., H. Juergens, and D. Saupe (1993). Fractals for the Classroom. Springer-Verlag Berlin Heidelberg.

### Examples

    ## The Hilbert curve transforms a 2-dim. function into a time series.
    z <- fractalcurve(4, which = "hilbert")

    ## Not run:
    f1 <- function(x, y) x^2 + y^2
    plot(f1(z$x, z$y), type = 'l', col = "darkblue", lwd = 2,
         ylim = c(-1, 2), main = "Functions transformed by Hilbert curves")

    f2 <- function(x, y) x^2 - y^2
    lines(f2(z$x, z$y), col = "darkgreen", lwd = 2)

    f3 <- function(x, y) x^2 * y^2
    lines(f3(z$x, z$y), col = "darkred", lwd = 2)
    grid()
    ## End(Not run)

    ## Not run:
    ## Show some more fractal surves
    n <- 8
    opar <- par(mfrow=c(2,2), mar=c(2,2,1,1))

    z <- fractalcurve(n, which="dragon")
    x <- z$x; y <- z$y
    plot(x, y, type='l', col="darkgrey", lwd=2)
    title("Dragon Curve")

    z <- fractalcurve(n, which="molecule")
    x <- z$x; y <- z$y
    plot(x, y, type='l', col="darkblue")
    title("Molecule Curve")

    z <- fractalcurve(n, which="arrowhead")
    x <- z$x; y <- z$y
    plot(x, y, type='l', col="darkgreen")
    title("Arrowhead Curve")

    z <- fractalcurve(n, which="snowflake")
    x <- z$x; y <- z$y
    plot(x, y, type='l', col="darkred", lwd=2)
    title("Snowflake Curve")

    par(opar)
    ## End(Not run)

[Package pracma version 2.0.4 Index]