I want to fill the below cylinder same as picture

And my code
\begin{tikzpicture}
\def\a{1} % bán trục lớn = bán kính trụ
\def\b{0.3} % bán trục nhỏ
\def\h{3} % chiều cao trụ
\shadedraw[left color=gray,right color=white, draw=none]
(-\a,1) -- (-\a,0) arc [x radius=\a, y radius=\b, start angle=180, end angle=360] (\a,0)--(\a,1)arc [x radius=\a, y radius=\b, start angle=0, end angle=180];
\draw (\a,0)--(\a,\h) (-\a,0)--(-\a,\h);
\draw[dashed] (\a,0) arc [x radius=\a, y radius=\b, start angle=0, end angle=180];
\draw (-\a,0) arc [x radius=\a, y radius=\b, start angle=180, end angle=360];
\draw[dashed] (\a,1) arc [x radius=\a, y radius=\b, start angle=0, end angle=180];
\draw (-\a,1) arc [x radius=\a, y radius=\b, start angle=180, end angle=360];
\draw (0,\h) ellipse (\a cm and \b cm);
\end{tikzpicture}
\begin{tikzpicture}[rotate=-70]
\def\a{1} % bán trục lớn = bán kính trụ
\def\b{0.3} % bán trục nhỏ
\def\h{3} % chiều cao trụ
\draw (\a,0)--(\a,\h) (-\a,0)--(-\a,\h);
\tkzDefPoints{-\a/0/A,\a/0/B,-\a/\h/a}
\tkzDefMidPoint(A,B)\tkzGetPoint{O}
\coordinate(M) at ([shift={(O)}]-70:\a cm and \b cm);
\draw[draw=none,name path=elip] (O) ellipse (\a cm and \b cm);
\tkzDefPointBy[rotation=center O angle 180](M)\tkzGetPoint{N}
\coordinate(C) at ([shift={(O)}]0:\a cm and \b cm);
\tkzDefPointBy[translation=from A to a](C)\tkzGetPoint{C'}
\fill[color=gray!50, draw=none]
(O) -- (M) .. controls (0.8,1.6) and (1,2.8) .. (C');
\fill[color=gray!50, draw=none]
(O) -- (N) .. controls (0.6,2.6) and (0.8,3.3) .. (C');
\tkzFindAngle(B,O,M)\tkzGetAngle{angBOM}
\fill[color=gray!40, draw=none]
(M) .. controls (0.8,1.5) and (1,2.6) .. (C')--(B);
\fill[color=gray!40, draw=none]
(M) arc [x radius=\a, y radius=\b, start angle=0, end angle=\angBOM]--(B);
\draw[dashed](M)--(N) (O)--(C');
\draw[name path=elip1] (M) .. controls (0.8,1.6) and (1,2.8) .. (C');
\draw[dashed,name path=elip2] (N) .. controls (0.6,2.6) and (0.8,3.3) .. (C');
\draw[dashed] (\a,0) arc [x radius=\a, y radius=\b, start angle=0, end angle=180];
\draw (-\a,0) arc [x radius=\a, y radius=\b, start angle=180, end angle=360];
\draw (0,\h) ellipse (\a cm and \b cm);
\end{tikzpicture}
Please help me! Thaks a lot!
