# Learning recursion through visual patterns (i)

The problem with trying to understand recursion is often the examples used. Fibonacci, and factorial are interesting mathematical expressions, which can even be expressed recursively. But most people don’t consciously think in a recursive manner (maybe subconsciously, but who really knows?). One simple way of viewing recursion is through visual patterns.

The easiest of these is the “square within a square within a square…”

This is generated in Processing. Here is the basic Processing environment set-up:

```float dx, dy;

void setup() {
size(400, 400);
noLoop();
}

void draw() {
dx = width/2.0;
dy = height/2.0;
background(255);
stroke(1);
recSquare(150);
}
```

Here is the recursive procedure:

```void recSquare(float side) {
if (side > 1) {
rect(dx, dy, side, side);
recSquare(side-5);
}
}
```

In the recursive function recSquare(),  if the size of the side of the square is greater than 1, it draws a square, and then calls itself recursively with a square size 5 pixels less.

This site uses Akismet to reduce spam. Learn how your comment data is processed.