How to Draw a Car Profile with TikZ
At a glance
- 1. Set up TikZ
Load the TikZ package and begin a tikzpicture environment in a minimal LaTeX document.
- 2. Draw the body
Use a closed path with straight segments and Bézier curves to make the car’s side silhouette.
- 3. Add windows and wheels
Place filled window shapes inside the body, then draw tires and hubs over the lower body.
- 4. Add details
Draw the doors, handles, lights, and bumpers as separate paths, adjusting coordinates as needed.
A side-view car is a useful example of combining TikZ paths, curves, and simple shapes. The code below draws a right-facing car using one closed path for the body, polygons for the windows, and circles for the wheels. It is a complete LaTeX document, so you can compile it directly and then edit the coordinates or colors.
Complete example
\documentclass{article}
\usepackage{tikz}
\pagestyle{empty}
\begin{document}
\begin{center}
\begin{tikzpicture}[line cap=round, line join=round]
% Main body silhouette
\path[draw=black, line width=1pt, fill=orange!80!red]
(0.2,0.72)
-- (0.25,1.05)
.. controls (0.45,1.28) and (0.72,1.33) .. (1.02,1.36)
-- (1.52,1.98)
.. controls (1.72,2.02) and (2.30,2.02) .. (2.55,1.98)
-- (3.12,1.37)
.. controls (3.55,1.34) and (3.92,1.27) .. (4.20,1.20)
-- (4.42,1.05)
-- (4.45,0.72)
-- cycle;
% Rear and front windows
\path[draw=black, line width=0.8pt, fill=cyan!25]
(1.18,1.43) -- (1.60,1.88) -- (2.38,1.88)
-- (2.38,1.43) -- cycle;
\path[draw=black, line width=0.8pt, fill=cyan!25]
(2.55,1.88) -- (2.49,1.43) -- (2.91,1.43)
-- (3.02,1.55) -- (2.68,1.88) -- cycle;
% Wheels and hubs
\foreach \x in {1.15,3.55} {
\fill[black] (\x,0.68) circle (0.48);
\fill[gray!25, draw=black, line width=0.8pt]
(\x,0.68) circle (0.25);
\fill[gray!65] (\x,0.68) circle (0.08);
}
% Door outlines and handles
\draw[black, line width=0.8pt]
(1.62,1.34) -- (1.62,0.82)
.. controls (1.90,0.78) and (2.28,0.78) .. (2.55,0.82)
-- (2.55,1.36);
\draw[black, line width=0.8pt] (1.82,1.23) -- (2.12,1.23);
\draw[black, line width=0.8pt] (2.27,1.23) -- (2.45,1.23);
% Lights and bumpers
\fill[yellow!80!white, draw=black, line width=0.6pt]
(4.20,1.02) ellipse (0.12 and 0.07);
\fill[red!70!black, draw=black, line width=0.6pt]
(0.30,0.98) rectangle (0.40,1.10);
\draw[line width=1.2pt] (4.25,0.70) -- (4.45,0.70);
\draw[line width=1.2pt] (0.18,0.70) -- (0.38,0.70);
\end{tikzpicture}
\end{center}
\end{document}
The document uses the standard article class and the tikz package. The line cap=round and line join=round options soften the ends and corners of drawn lines. TikZ coordinates are in centimeters by default, so the car is a little over four centimeters long in this example.
How the drawing is constructed
The first \path defines the car’s outline. Coordinates such as (0.2,0.72) are points in the drawing. The -- operator joins points with straight segments. The command .. controls (...) and (...) .. draws a cubic Bézier curve: its two control points shape the curve between the current point and the next point. -- cycle closes the path so TikZ can fill the interior.
The fill and outline are set together with fill=orange!80!red and draw=black. In TikZ color mixing, orange!80!red means a blend containing 80 percent orange and 20 percent red. You can replace it with a color such as blue!70 or gray!50.
The windows are separate closed paths drawn on top of the body. Their coordinates are chosen to sit inside the roof and body outline. The two windows are separate so the central pillar between them remains visible. The wheels are drawn afterward as filled circles, so their black tires cover the lower body line where they overlap. Each wheel has a larger tire circle, a smaller outlined hub, and a center dot.
The \foreach loop draws both wheels using the same commands. It substitutes 1.15 and 3.55 for \x, the horizontal coordinate of each wheel center. If you move a wheel, change its coordinate in the list and keep the hub circles at the same center.
Adjusting the shape
For a longer or shorter car, change the horizontal coordinates consistently across the body, windows, wheels, and details. To make the roof taller, increase the roof’s y-coordinates, such as 1.98 and 2.02. The y-coordinate controls vertical position; the x-coordinate controls horizontal position.
To scale the whole illustration’s geometry without editing every coordinate, add a scale option to the picture environment, for example \\begin{tikzpicture}[scale=1.2, line cap=round, line join=round]. This scales the coordinates but leaves ordinary line widths unchanged. Use transform shape as well if you want node shapes and their text to be transformed; it does not scale ordinary line widths, as in \\begin{tikzpicture}[scale=1.2, transform shape].
Common mistakes
- Leaving the body path open: A filled path should be closed.
-- cyclecloses the car silhouette and prevents an unintended fill boundary. - Drawing the wheels too early: Later body paths may cover them. Draw the body first and the wheels afterward so the tires appear in front.
- Moving only one part: If you change the body proportions, check the window, wheel, and detail coordinates too. TikZ does not automatically attach these separate paths to the body.
- Using
tikzpicturewithout loading TikZ: Include\\usepackage{tikz}in the document preamble, before\\begin{document}.
References
Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.