# How can I draw an arc with varying line thickness?

I'm trying to redraw existing figures with TikZ as an exercise to learn it. This time I have choosen an interesting logo and I'm having difficulties drawing the arc. Here is the logo

I noticed that the red arc looks almost like an incomplete ellipse and found the interesting arc option in the manual. This may not be the best approach since the end of the arc (close to the last 'n') seems to deviate from the ellipse shape. Anyway, what I'm really interested is not the arc construction (I may file a separate question for that), but how I could draw the arc with varying line thickness. I.e. it starts very thin, and smoothly increases and decreases again.

Here's what I got so far (note: font is not right ... probably propriatary):

\begin{tikzpicture}[font=\sffamily]
% font: the 'n' has some funny curvature

\definecolor{infblue}{HTML}{0066b3}
\definecolor{infred}{HTML}{ec1840}
% guessing boundary conditions
\coordinate (upperred) at (2.,1.6);
\coordinate (rightred) at (3.6,0.7);

% helpers
\fill[gray] (upperred) circle (1pt);
\fill[gray] (rightred) circle (1pt);
%\draw (upperred) .. controls (-4,4) and (6,0) .. (rightred);
%\draw plot [smooth,tension=0.7] coordinates {(upperred) (Iblue) (rightred)};

\node[rectangle] at (2,1) {\Huge \textcolor{infblue}{Infineon}};

% todo: initial 'I' is shorter. replace.
\end{tikzpicture}


-
possible duplicate of Trait with variable thickness – percusse Jan 18 '12 at 10:08
thanks @percusse, this seems to be quite difficult, then. Any other ideas? – Sebastian Jan 18 '12 at 10:15
IMHO you need to use (at least) two bezier curves to draw the two borders of the red arc and then fill it with red, instead of trying to draw it as a line. – Martin Scharrer Jan 19 '12 at 8:59

Here you have a TikZ version, although it's "cheated": it doesnt draw arcs, but overlays a white ellipse on top of a red one:

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usepackage{kurier}

\begin{document}
\begin{tikzpicture}[scale=0.5, every node/.style={font=\fontsize{70}{70}\selectfont}];
\fill[red] (0,0) circle (10cm and 5cm);
\fill[white] (0.5,0.5) circle (9.5cm and 4.75cm);
\node[blue] at (0,1.3) {infineon};
\fill[white] (-8.1,2.8) circle (0.7cm);
\fill[blue] (-8.1,2.8) circle (0.5cm);
\end{tikzpicture}
\end{document}


Edit 1: I tweaked it a little: a better font, and I used your colors:

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
%\usepackage[condensed,math]{iwona}
\usepackage{iwona}
\usepackage[T1]{fontenc}

\begin{document}
\begin{tikzpicture}[scale=0.5, every node/.style={font=\fontsize{70}{70}\selectfont}];
\definecolor{infblue}{HTML}{0066b3}
\definecolor{infred}{HTML}{ec1840}

\fill[infred] (0,0) circle (10cm and 5cm);
\fill[white] (0.5,0.5) circle (9.5cm and 4.75cm);
\node[infblue] at (-0.20,0.8) {\textbf{Infineon}};
\fill[white] (-8,2.9) circle (0.7cm);
\fill[infblue] (-8,2.9) circle (0.5cm);
\end{tikzpicture}
\end{document}


Edit 2: As I wasn't happy with the ellipses, I changed that to come closer to the original:

\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
%\usepackage[condensed,math]{iwona}
\usepackage{iwona}
\usepackage[T1]{fontenc}

\begin{document}
\begin{tikzpicture}[scale=0.5, every node/.style={font=\fontsize{70}{70}\selectfont}];
\definecolor{infblue}{HTML}{0066b3}
\definecolor{infred}{HTML}{ec1840}

\fill[infred] (0,0) circle (10cm and 5cm);
\fill[white] (0.5,0.25) circle (9.8cm and 4.75cm);
\node[infblue] at (-0.20,0.4) {\textbf{Infineon}};
\fill[white] (-8,2.9) circle (0.7cm);
\fill[infblue] (-8,2.9) circle (0.5cm);
\end{tikzpicture}
\end{document}


-
very compact way of solving this problem! thanks – Sebastian Jan 18 '12 at 14:31
excellent additions! Great work. – Sebastian Jan 20 '12 at 5:10

run it with xelatex

\documentclass{scrartcl}
\usepackage{libertineotf}
\usepackage{pst-plot,pst-node}

\begin{document}

\psset{endLW=12pt}
\begin{pspicture}(-4,-2)(4,2)
\rput(0,0){\psscalebox{4}{\textcolor{blue}{\rnode[t]{I}{l}nfinion}}}
\psparametricplot[variableLW,startLW=1pt,plotpoints=500,
linecolor=red!80]{90}{180}{t cos 3.2 mul t sin 1.2 mul}
\psparametricplot[variableLW,startLW=1pt,plotpoints=1000,
linecolor=red!80]{350}{180}{t cos 3.2 mul t sin 1.2 mul}
\pscircle[linecolor=white,linewidth=1mm,
fillstyle=solid,fillcolor=blue]([Ynodesep=7pt,angle=100]I){3mm}
\end{pspicture}

\end{document}


-