Turtle graphics is a classic teaching tool in computer science, originally invented in the 1960s and reimplemented over and over again in different programming languages. In R, there is a similar package called `TurtleGraphics`

:

```
install.packages('TurtleGraphics')
library(TurtleGraphics)
```

Here’s the idea. You have a turtle, and she lives in a nice warm terrarium. The terrarium is 100 x 100 units in size, where the lower-left corner is at the `(x, y)`

position of `(0, 0)`

. When you call `turtle_init()`

, the turtle is initially positioned in the center of the terrarium at `(50, 50)`

:

`turtle_init()`

You can move the turtle using a variety of movement functions (see `?turtle_move()`

), and she will leave a trail where ever she goes. For example, you can move her 10 units forward from her starting position:

```
turtle_init()
turtle_forward(distance = 10)
```

You can also make the turtle jump to a new position (without drawing a line) by using the `turtle_setpos(x, y)`

, where `(x, y)`

is a coordinate within the 100 x 100 terrarium:

```
turtle_init()
turtle_setpos(x=10, y=10)
```

Simple enough, right? But what if I want my turtle to draw a more complicated shape? Let’s say I want her to draw a hexagon. There are six sides to the hexagon, so the most natural way to write code for this is to write a `for`

loop that loops over the sides! At each iteration within the loop, I’ll have the turtle walk forwards, and then turn 60 degrees to the left. Here’s what happens:

```
turtle_init()
for (side in 1:6) {
turtle_forward(distance = 10)
turtle_left(angle = 60)
}
```

Cool! As you draw more complex shapes, you can speed up the process by wrapping your turtle commands inside the `turtle_do({})`

function. This will skip the animations of the turtle moving and will jump straight to the final position. For example, here’s the hexagon again without animations:

```
turtle_init()
turtle_do({
for (side in 1:6) {
turtle_forward(distance = 10)
turtle_left(angle = 60)
}
})
```

**Page sources**:

Some content on this page has been modified from other courses, including:

- Danielle Navarro’s website “R for Psychological Science”

George Washington University | School of Engineering & Applied Science

Dr. John Paul Helveston | jph@gwu.edu | Mondays | 6:10–8:40 PM | Phillips Hall 108 | |

This work is licensed under a Creative Commons Attribution 4.0 International License.

See the licensing page for more details about copyright information.

Content 2019 John Paul Helveston