Drawing geometric shapes
We want to progress from high-speed to advanced TikZ concepts, so let’s have a compact summary of what we can draw in this basic setting – that is, we start with \draw <coordinate>
(that’s the current coordinate) and continue with some of the following elements:
- Line:
-- (x,y)
draws a line from the current coordinate to (x,y). - Rectangle:
rectangle (x,y)
draws a rectangle where one corner is the current coordinate, and the opposite corner is (x,y). - Grid: Like
rectangle
but with lines in between as a grid. - Circle:
circle (r)
was a short syntax we used previously, but the extended syntax iscircle [radius=r],
which draws a circle with the center at the current coordinate and a radius of r. - Ellipse:
ellipse [x radius = rx, y radius = ry]
draws an ellipse with a horizontal radius ofrx
and a vertical radius ofry
. The short form isellipse (rx
and ry)
. - Arc:
arc[start angle=a, end angle=b, radius=r]
gives a part of a circle with a radius of r at the current coordinate, starting from angles a to angles b. The short command version isarc(a:b:r)
.
arc[start angle=a, end angle=b, x radius=rx, y radius=ry]
gives a part of an ellipse with an x radius of rx
and a y radius of ry
at the current coordinate, starting from angle a and going to angle b. The short syntax would be arc(a:b:rx
and ry)
.
Let’s have a few examples to see what these commands do:
- Draw a circle with a radius of
2
at the origin:\draw (0,0) circle [radius=2];
- Next, draw an ellipse with a horizontal radius of
0.2
and a vertical radius of0.4
:\draw (-0.5,0.5,0) ellipse [x radius=0.2, y radius=0.4];
- Now, draw the same ellipse at
(0.5,0.5)
:\draw (0.5,0.5) ellipse [x radius=0.2, y radius=0.4];
- Next, draw an arc that looks like a smile:
\draw (-1,-1) arc [start angle=185, end angle=355,
x radius=1, y radius=0.5];
- Finally, draw a rectangle with the lower-left corner at
-3,-3
and the upper-right corner at3,3
:\draw (-3,-3) rectangle (3,3);
When you use all the commands from steps 1 to 5 in a tikzpicture
environment and compile, you get the following:
Figure 2.9 – A smiley in a rectangle
This result of the command examples still looks a bit dull. Let’s improve it a bit and fill it with color.