Using tikz-3dplot
.
This is basically the same thing I did here :
XYZ Coordinate System Drawing
Some things have to be changed, since rotate
don't seem to work with tikz-3dplot
(I don't understand why...)
I cheat a bit for the circular gears, by setting an adjusted angle to fake continuity.
The output

The code
\documentclass[tikz]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
%% viewing angles %%
\def\angThe{70} %%
\def\angPhi{0} %%
%%%%%%%%%%%%%%%%%%%%
\tdplotsetmaincoords{\angThe}{\angPhi}
\begin{tikzpicture}[tdplot_main_coords, scale=1.7]
\def\topDisk
{
\filldraw
[
even odd rule,
inner color=red,
outer color=red,
fill opacity = 0.4,
draw=black, thick,
]
(0,0) circle (3)
(0,0) circle (3.1);
\filldraw
[
even odd rule,
inner color=white,
outer color=blue,
fill opacity = 0.1,
draw=black, thick,
]
(0,0) circle (1.0)
(0,0) circle (3);
\foreach \i in {1,2,...,14}
{
\pgfmathsetmacro{\a}{(\i-1)*36}
\draw[thick, fill = white] (\a:1) circle (.26) ;
}
\fill [white] (0,0) circle (1) ;
\foreach \i in {1,2,...,14}
{
\pgfmathsetmacro{\a}{(\i-1)*36}
\draw[thick] (\a:1) arc (\a:\a+21:1);
}
\filldraw[thick, fill = gray] (0,0) circle (0.1);
\draw[-latex] (0,-1.9) arc (274:180:1.5) node[thick,midway,below] {$\Omega$};
\draw[->, ] (0,0) -- (45:3) node [below=5pt,near end,] {$r_0$};
\draw[->, ] (0,0) -- (-40:1.2) node [midway,fill = white] {$r_i$};
}
\topDisk
\def\r{3.1}
\def\z{-1}
\pgfmathsetmacro{\angPhiOpp}{\angPhi-180}
\draw [fill=pink] (\angPhi:\r) arc (\angPhi:\angPhiOpp:\r)
{[shift={(0,0,\z)}]
-- (\angPhiOpp:\r) arc (\angPhiOpp:\angPhi:\r)
} -- cycle;
\begin{scope}[x=1cm,y=1cm,yshift=5cm]
\topDisk
\end{scope}
\end{tikzpicture}
\end{document}
a e s t h e t h i c

\documentclass[tikz]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
%% viewing angles %%
\def\angThe{70} %%
\def\angPhi{0} %%
%%%%%%%%%%%%%%%%%%%%
\tdplotsetmaincoords{\angThe}{\angPhi}
\begin{tikzpicture}[tdplot_main_coords, scale=1.7]
\def\topDisk
{
\filldraw
[
even odd rule,
fill=purple!79!blue,
fill opacity = 0.6,
draw=black, thick,
]
(0,0) circle (3)
(0,0) circle (3.1);
\filldraw
[
even odd rule,
inner color=white,
outer color=teal,
fill opacity = 0.2,
draw=black, thick,
]
(0,0) circle (1.0)
(0,0) circle (3);
\foreach \i in {1,2,...,14}
{
\pgfmathsetmacro{\a}{(\i-1)*36}
\draw[thick, fill = white] (\a:1) circle (.26) ;
}
\fill [white] (0,0) circle (1) ;
\foreach \i in {1,2,...,14}
{
\pgfmathsetmacro{\a}{(\i-1)*36}
\draw[thick] (\a:1) arc (\a:\a+21:1);
}
\filldraw[thick, fill = gray] (0,0) circle (0.1);
}
\topDisk
\def\r{3.1}
\def\z{-1}
\pgfmathsetmacro{\angPhiOpp}{\angPhi-180}
\pgfmathsetmacro{\angPhiMid}{\angPhi-90}
\def\around[#1]<#2:#3>
{
\path
[
#1
]
(#2:\r) arc (#2:#3:\r)
{[shift={(0,0,\z)}]
-- (#3:\r) arc (#3:#2:\r)
} -- cycle;
}
\begin{scope}[transparency group,opacity=.35]
\around
[
fill,
left color=blue,
right color=red,
]<\angPhi:\angPhiMid>
\around
[
fill,
left color=red,
right color=blue,
]<\angPhiMid+1:\angPhiOpp>
\end{scope}
\around[draw=thick]<\angPhi:\angPhiOpp>
\begin{scope}[x=1cm,y=1cm,yshift=5cm]
\topDisk
\draw[-latex] (0,-1.9) arc (274:180:1.5) node[thick,midway,below] {$\Omega$};
\draw[->, ] (0,0) -- (45:3) node [below=5pt,near end,] {$r_0$};
\draw[->, ] (0,0) -- (-40:1.2) node [midway,fill = white] {$r_i$};
\end{scope}
\end{tikzpicture}
\end{document}
Or like this ?

\documentclass[tikz]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
%% viewing angles %%
\def\angThe{70} %%
\def\angPhi{0} %%
%%%%%%%%%%%%%%%%%%%%
\tdplotsetmaincoords{\angThe}{\angPhi}
\begin{tikzpicture}[tdplot_main_coords, scale=1.7]
\definecolor{blueish}{HTML}{2AA198}
\definecolor{backg}{HTML}{EC93D3}
\def\topDisk
{
\filldraw
[
even odd rule,
inner color=red,
outer color=red,
fill opacity = 0.4,
draw=black, thick,
]
(0,0) circle (3)
(0,0) circle (3.1);
\filldraw
[
even odd rule,
inner color=white,
outer color=blue,
fill opacity = 0.1,
draw=black, thick,
]
(0,0) circle (1.0)
(0,0) circle (3);
\foreach \i in {1,2,...,14}
{
\pgfmathsetmacro{\a}{(\i-1)*36}
\draw[thick, fill = white] (\a:1) circle (.26) ;
}
\fill [white] (0,0) circle (1) ;
\foreach \i in {1,2,...,14}
{
\pgfmathsetmacro{\a}{(\i-1)*36}
\draw[thick] (\a:1) arc (\a:\a+21:1);
}
\filldraw[thick, fill = gray] (0,0) circle (0.1);
}
\topDisk
\def\r{3.1}
\def\z{-1}
\pgfmathsetmacro{\angPhiOpp}{\angPhi-180}
\def\around[#1]<#2:#3>
{
\path[#1] (#2:\r) arc (#2:#3:\r)
{[shift={(0,0,\z)}]
-- (#3:\r) arc (#3:#2:\r)
} -- cycle;
}
\begin{scope}[transparency group,opacity=.65]
\def\thet{20}
\pgfmathsetmacro{\by}{\angPhiOpp+\thet}
\pgfmathsetmacro{\to}{\angPhi-\thet}
\foreach \k [evaluate=\k as \kk using \k+.5*\thet, evaluate=\k as \kkk using \k+\thet] in {\angPhiOpp,\by,...,\to}
{
\around[fill=blue]<\k:\kk>
\around[fill=red]<\kk:\kkk>
}
\end{scope}
\around[draw,thick]<\angPhi:\angPhiOpp>
\end{tikzpicture}
\end{document}
As a stack

\documentclass[tikz]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
%% viewing angles %%
\def\angThe{70} %%
\def\angPhi{0} %%
%%%%%%%%%%%%%%%%%%%%
\tdplotsetmaincoords{\angThe}{\angPhi}
\begin{tikzpicture}[tdplot_main_coords, scale=1.7]
\definecolor{blueish}{HTML}{2AA198}
\definecolor{backg}{HTML}{EC93D3}
\def\topDisk
{
\filldraw
[
even odd rule,
inner color=red,
outer color=red,
fill opacity = 0.4,
draw=black, thick,
]
(0,0) circle (3)
(0,0) circle (3.1);
\filldraw
[
even odd rule,
inner color=white,
outer color=blue,
fill opacity = 0.1,
draw=black, thick,
]
(0,0) circle (1.0)
(0,0) circle (3);
\foreach \i in {1,2,...,14}
{
\pgfmathsetmacro{\a}{(\i-1)*36}
\draw[thick, fill = white] (\a:1) circle (.26) ;
}
\fill [white] (0,0) circle (1) ;
\foreach \i in {1,2,...,14}
{
\pgfmathsetmacro{\a}{(\i-1)*36}
\draw[thick] (\a:1) arc (\a:\a+21:1);
}
\filldraw[thick, fill = gray] (0,0) circle (0.1);
}
\def\r{3.1}
\def\h{-.3}
\pgfmathsetmacro{\angPhiOpp}{\angPhi-180}
\def\around[#1]|#2,#3|
{
\begin{scope}[shift={(0,0,\h*(#2))}]
\path [#1] (\angPhi:\r) arc (\angPhi:\angPhiOpp:\r)
{[shift={(0,0,\h*(#3))}]
-- (\angPhiOpp:\r) arc (\angPhiOpp:\angPhi:\r)
} -- cycle;
\end{scope}
}
\def\N{5}
\begin{scope}[transparency group,opacity=.65]
\foreach \k in {0,...,\N}
{
\around[fill=blue]|\k,.5|
\around[fill=red]|\k+.5,.5|
}
\end{scope}
\around[draw,thick]|0,\N+1|
\topDisk
\end{tikzpicture}
\end{document}