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