Consider Gabriel's Horn:
which, mathematically speaking, is the curve y=1/x
over the interval [1,∞] revolved about the x-axis. It is interesting because though it contains a finite volume, its surface area is infinite.
In an effort to draw it, I imported the image into Inkscape, traced a bitmap, and exported it to a tikzpath, which I incorporated into LaTeX as follows:
\documentclass[12pt]{book}
\usepackage{tikz}
\begin{document}
\thispagestyle{empty}
\begin{tikzpicture}
\path[fill=black] (6.8, 14.1).. controls (6.7, 14.1) and (6.7, 14.3) .. (6.6,
14.4).. controls (6.5, 14.6) and (6.5, 15.2) .. (6.5, 15.1).. controls (6.5,
15.1) and (6.7, 15.1) .. (6.9, 15.1) -- (7.3, 15.1) -- (7.3, 14.9).. controls
(7.3, 14.7) and (7.2, 14.5) .. (7.0, 14.4).. controls (6.9, 14.4) and (6.8,
14.3) .. (6.8, 14.3).. controls (6.7, 14.2) and (6.7, 14.2) .. (6.8, 14.1)..
controls (6.9, 14.0) and (6.9, 14.0) .. (6.8, 14.1) -- cycle(7.2, 14.9)..
controls (7.3, 15.0) and (7.2, 15.1) .. (7.0, 15.0).. controls (6.9, 15.0) and
(6.8, 14.9) .. (6.9, 14.8).. controls (6.9, 14.8) and (7.1, 14.8) .. (7.2,
14.9) -- cycle(7.0, 14.1).. controls (7.0, 14.1) and (7.1, 14.1) .. (7.2,
14.2).. controls (7.3, 14.2) and (7.3, 14.3) .. (7.2, 14.2).. controls (7.2,
14.2) and (7.1, 14.2) .. (7.1, 14.3).. controls (7.1, 14.3) and (7.2, 14.3) ..
(7.3, 14.3).. controls (7.4, 14.3) and (7.4, 14.3) .. (7.4, 14.3).. controls
(7.4, 14.4) and (7.4, 14.4) .. (7.4, 14.4).. controls (7.5, 14.4) and (7.5,
14.4) .. (7.5, 14.4).. controls (7.5, 14.4) and (7.5, 14.4) .. (7.5, 14.4)..
controls (7.6, 14.4) and (7.6, 14.4) .. (7.5, 14.4).. controls (7.5, 14.5) and
(7.5, 14.5) .. (7.5, 14.5).. controls (7.6, 14.4) and (7.6, 14.4) .. (7.3,
14.2).. controls (7.0, 14.0) and (7.0, 14.0) .. (7.0, 14.1) -- cycle(7.6,
14.5).. controls (7.6, 14.5) and (7.6, 14.5) .. (7.7, 14.5).. controls (7.7,
14.5) and (7.7, 14.5) .. (7.7, 14.5).. controls (7.7, 14.5) and (7.7, 14.5) ..
(7.7, 14.5).. controls (7.8, 14.5) and (7.8, 14.5) .. (7.8, 14.5).. controls
(7.7, 14.6) and (7.8, 14.6) .. (7.8, 14.6).. controls (7.8, 14.5) and (7.8,
14.5) .. (7.8, 14.5).. controls (7.7, 14.4) and (7.6, 14.4) .. (7.6, 14.5) --
cycle(7.8, 14.6).. controls (7.8, 14.6) and (7.8, 14.6) .. (7.9, 14.6)..
controls (7.9, 14.6) and (8.0, 14.6) .. (7.9, 14.6).. controls (7.9, 14.6) and
(7.9, 14.6) .. (8.0, 14.6).. controls (8.0, 14.6) and (8.1, 14.6) .. (8.0,
14.6).. controls (8.0, 14.7) and (8.0, 14.7) .. (8.1, 14.7).. controls (8.2,
14.6) and (8.2, 14.6) .. (8.1, 14.7).. controls (8.1, 14.7) and (8.2, 14.7) ..
(8.2, 14.7).. controls (8.3, 14.7) and (8.2, 14.6) .. (8.1, 14.6).. controls
(8.0, 14.6) and (8.0, 14.6) .. (7.9, 14.6).. controls (7.9, 14.5) and (7.9,
14.6) .. (7.8, 14.6) -- cycle(7.3, 14.7).. controls (7.3, 14.8) and (7.3,
14.8) .. (7.3, 14.8).. controls (7.3, 14.7) and (7.3, 14.7) .. (7.3, 14.7)..
controls (7.3, 14.7) and (7.3, 14.7) .. (7.3, 14.7) -- cycle(8.3, 14.7)..
controls (8.2, 14.8) and (8.3, 14.8) .. (8.4, 14.7).. controls (8.4, 14.7) and
(8.4, 14.7) .. (8.4, 14.7).. controls (8.3, 14.7) and (8.3, 14.7) .. (8.3,
14.7) -- cycle(8.4, 14.8).. controls (8.4, 14.8) and (8.4, 14.8) .. (8.5,
14.8).. controls (8.6, 14.8) and (8.6, 14.8) .. (8.6, 14.8).. controls (8.5,
14.8) and (8.5, 14.8) .. (8.6, 14.8).. controls (8.6, 14.8) and (8.7, 14.8) ..
(8.7, 14.8).. controls (8.7, 14.8) and (8.7, 14.8) .. (8.7, 14.8).. controls
(8.5, 14.7) and (8.5, 14.7) .. (8.4, 14.8) -- cycle(8.7, 14.8).. controls
(8.7, 14.8) and (8.7, 14.9) .. (8.8, 14.8).. controls (8.9, 14.8) and (8.9,
14.8) .. (8.9, 14.8).. controls (9.0, 14.8) and (8.8, 14.8) .. (8.7, 14.8) --
cycle(9.0, 14.8).. controls (9.1, 14.9) and (9.1, 14.9) .. (9.1, 14.8)..
controls (9.1, 14.8) and (9.1, 14.8) .. (9.1, 14.8).. controls (9.0, 14.8) and
(9.0, 14.8) .. (9.0, 14.8) -- cycle(7.3, 15.0).. controls (7.3, 15.4) and
(7.3, 15.4) .. (7.0, 15.5) -- (6.7, 15.7) -- (6.7, 15.9).. controls (6.7,
16.0) and (6.7, 16.1) .. (6.7, 16.1).. controls (6.7, 16.1) and (6.6, 16.0) ..
(6.6, 15.9).. controls (6.6, 15.9) and (6.6, 15.9) .. (6.6, 15.9).. controls
(6.6, 15.9) and (6.6, 16.0) .. (6.6, 16.1).. controls (6.7, 16.2) and (6.7,
16.2) .. (6.7, 16.2).. controls (6.7, 16.1) and (6.7, 16.1) .. (6.8, 16.1)..
controls (6.8, 16.2) and (6.8, 16.2) .. (6.8, 16.1).. controls (6.7, 15.9) and
(6.7, 15.9) .. (7.0, 15.7).. controls (7.2, 15.6) and (7.3, 15.5) .. (7.3,
15.5).. controls (7.3, 15.4) and (7.3, 15.3) .. (7.3, 15.1).. controls (7.3,
14.9) and (7.3, 14.9) .. (7.3, 15.0) -- cycle(8.9, 14.9).. controls (8.9,
14.9) and (8.9, 14.9) .. (8.9, 14.9).. controls (8.9, 14.9) and (8.9, 14.9) ..
(8.9, 14.9).. controls (8.8, 14.9) and (8.8, 14.9) .. (8.9, 14.9) --
cycle(9.2, 14.9).. controls (9.3, 14.9) and (9.3, 14.9) .. (9.4, 14.9)..
controls (9.4, 14.9) and (9.4, 14.9) .. (9.3, 14.9).. controls (9.2, 14.9) and
(9.2, 14.9) .. (9.2, 14.9) -- cycle(9.1, 14.9).. controls (9.1, 14.9) and
(9.1, 14.9) .. (9.1, 14.9).. controls (9.2, 14.9) and (9.1, 14.9) .. (9.1,
14.9).. controls (9.1, 14.9) and (9.0, 14.9) .. (9.1, 14.9) -- cycle(9.5,
14.9).. controls (9.5, 14.9) and (9.6, 14.9) .. (9.6, 14.9).. controls (9.7,
14.9) and (9.6, 14.9) .. (9.6, 14.9).. controls (9.5, 14.9) and (9.5, 14.9) ..
(9.5, 14.9) -- cycle(9.3, 15.0).. controls (9.3, 15.0) and (9.3, 15.0) ..
(9.4, 15.0).. controls (9.4, 14.9) and (9.4, 14.9) .. (9.3, 14.9).. controls
(9.3, 14.9) and (9.3, 14.9) .. (9.3, 15.0) -- cycle(9.8, 15.0).. controls
(9.8, 15.0) and (9.9, 15.0) .. (10.0, 15.0).. controls (10.0, 14.9) and (10.0,
14.9) .. (9.9, 14.9).. controls (9.8, 14.9) and (9.7, 14.9) .. (9.8, 15.0) --
cycle(7.9, 15.0).. controls (7.6, 15.1) and (7.4, 15.3) .. (7.4, 15.7)..
controls (7.3, 15.8) and (7.3, 15.9) .. (7.2, 16.1).. controls (7.1, 16.2) and
(7.0, 16.3) .. (7.0, 16.3).. controls (7.0, 16.3) and (7.0, 16.3) .. (7.1,
16.2).. controls (7.1, 16.2) and (7.1, 16.2) .. (7.1, 16.2).. controls (7.1,
16.2) and (7.2, 16.1) .. (7.3, 16.1).. controls (7.9, 15.6) and (9.3, 15.3) ..
(11.4, 15.2).. controls (11.8, 15.2) and (12.2, 15.2) .. (12.3, 15.2)..
controls (12.4, 15.2) and (12.6, 15.2) .. (12.8, 15.2).. controls (12.9, 15.2)
and (13.0, 15.2) .. (13.0, 15.1).. controls (13.0, 15.1) and (12.8, 15.1) ..
(11.5, 15.0).. controls (11.1, 15.0) and (10.6, 15.0) .. (10.4, 15.0)..
controls (10.2, 15.0) and (10.1, 15.0) .. (10.1, 15.0).. controls (10.1, 15.0)
and (10.4, 15.0) .. (10.7, 15.0).. controls (11.9, 15.1) and (12.0, 15.1) ..
(11.9, 15.1).. controls (11.9, 15.2) and (11.7, 15.2) .. (11.5, 15.2)..
controls (9.7, 15.2) and (8.0, 15.5) .. (7.4, 15.9).. controls (7.4, 16.0) and
(7.3, 16.0) .. (7.3, 16.0).. controls (7.3, 16.0) and (7.4, 15.9) .. (7.5,
15.8).. controls (7.6, 15.7) and (7.6, 15.7) .. (7.6, 15.6).. controls (7.6,
15.4) and (7.9, 15.2) .. (8.1, 15.2).. controls (8.2, 15.2) and (8.3, 15.2) ..
(8.3, 15.1).. controls (8.3, 15.1) and (8.7, 15.1) .. (9.4, 15.1).. controls
(10.1, 15.1) and (10.6, 15.1) .. (10.6, 15.1).. controls (10.6, 15.1) and
(10.3, 15.0) .. (9.9, 15.0).. controls (9.8, 15.0) and (9.7, 15.0) .. (9.8,
15.0) -- (9.9, 15.1) -- (9.8, 15.1).. controls (9.7, 15.1) and (9.5, 15.1) ..
(9.2, 15.0).. controls (8.5, 15.0) and (8.0, 15.0) .. (7.9, 15.0) --
cycle(7.3, 16.0).. controls (7.3, 16.0) and (7.2, 16.0) .. (7.2, 16.1) --
(7.1, 16.2) -- (7.2, 16.1).. controls (7.3, 16.0) and (7.3, 16.0) .. (7.3,
16.0) -- cycle(9.5, 15.0).. controls (9.5, 15.0) and (9.6, 15.0) .. (9.6,
15.0).. controls (9.7, 15.0) and (9.6, 15.0) .. (9.6, 15.0).. controls (9.5,
15.0) and (9.5, 15.0) .. (9.5, 15.0) -- cycle(6.5, 15.5).. controls (6.5,
15.5) and (6.5, 15.6) .. (6.5, 15.5).. controls (6.5, 15.5) and (6.5, 15.4) ..
(6.5, 15.4).. controls (6.5, 15.4) and (6.5, 15.4) .. (6.5, 15.5) -- cycle;
\end{tikzpicture}
\end{document}
Compiling it, I get
Then, when I tried to add some color shading to get the horn to look more realistic, I got the following TikZ code which I cannot compile because the colorcodes (e.g., cb9b9b9) are not recognized by LaTeX. Moreover, I am not posting the code here because it is extremely long.
QUESTION: How may I produce a reasonable facsimile of the above Wiki image with LaTeX code? From the colorized bitmap trace from Inkscape, I thought I had it, but LaTeX does not recognize Inkscape's color codes; for example, \path[fill=c767676] (-11.7, 7.6).. controls (-11.7, 7.6) and (-11.3, 8.0) ..
TikZ
required? Would you accept other solutions (PSTricks
orasymptote
for example?)