# How to draw a contour diagram in Mathematica?

This answer at Math.SE contains a neat contour diagram created using Mathematica: What Mathematica functions I can use to draw diagrams like this?

• Line, Arrow and Circle inside Graphics; also Point and Text. I imagine the contour was done "by hand", so to speak, inserting appropriate coordinates. – Michael E2 May 22 '13 at 0:32

Here's a quick 5 minute reproduction of the diagram (I've left the labeling of individual points out): With[{ε = 0.05, L = 1, thick = AbsoluteThickness},
Graphics[{
thick,
Circle[{0, 0}, ε, {π/2, 3 π/2}],
Arrow[{{0, -ε}, {L, -ε}, {L, -L}, {-L, -L}, {-L, L}, {L, L}, {L, ε}, {0, ε}}],
Text[Style["\!$$\*SubscriptBox[\(C$$, $$n$$]\)", FontSize -> 15], {L/2, 0.1}]
}, Axes -> True, AxesStyle -> thick, Ticks -> False]
]


The key points to make life simple are:

• Use a single Arrow chain for the entire length.
• Use the appropriate definition of Arrowheads to specify the position of the arrow head.
• Use AbsoluteThickness to get a uniform thickness.
• Use the 3 argument form of Circle to draw arcs.
Graphics[{Circle[{0, 0}, 1, Pi/2 {1, 3}],
Arrow[{{10, 1}, {0, 1}}],
Line[{{0, 1}, {10, 1}, {10, 10}, {-10, 10}, {-10, -10}, {10, -10}, {10, -1}, {0, -1}}]},
Axes -> True, Ticks -> None] • Congratulations on 30K and 81K network, belisarius. :-) – Mr.Wizard May 22 '13 at 5:47
• @Mr.Wizard Thanks a lot :) – Dr. belisarius May 22 '13 at 11:48

One can use Arrow as following.

pts = {{0, -1}, {10, -1}, {10, -10}, {-10, -10}, {-10, 10}, {10, 10}, {10, 1}};
Graphics[{Circle[{0, 0}, 1, Pi/2 {1, 3}], Arrowheads[{0, 0.03, 0}],
Arrow[{{10, 1}, {0, 1}}], Arrow[Partition[pts, 2, 1]]},
Axes -> True, AxesStyle -> AbsoluteThickness@1, Ticks -> None] And replace Arrowheads[{0, 0.03, 0}] to Arrowheads[{0, 0.03, 0.03, 0}] to get 