Perhaps this is what you have in mind? I used the regular polygon shape for a pyramid with a 8-sided base; the base was slanted and rotated. Adjust the settings according to your needs:

The code:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\tikzset{
mypyr/.style={
regular polygon,
regular polygon sides=8,
minimum size=3cm,
rotate=-50,
yslant=0.5
}
}
\begin{document}
\begin{tikzpicture}
\node[mypyr]
(base1) at (0,0) {};
\coordinate (appex1) at (0,4);
\foreach \Coord in {1,4,5,6,7,8}
{
\draw (base1.corner \Coord) -- (appex1);
}
\foreach \Coord in {2,3}
{
\draw[dashed] (base1.corner \Coord) -- (appex1);
}
\foreach \Coord in {4,...,7}
{
\fill[blue,opacity=0.2]
(base1.corner \Coord) -- (base1.corner \the\numexpr\Coord+1\relax) -- (appex1) -- cycle;
}
\fill[blue,opacity=0.2]
(base1.corner 8) -- (base1.corner 1) -- (appex1) -- cycle;
\node[mypyr,draw] at (0,0) {};
\foreach \Coord in {1,...,4}
{
\draw[opacity=0.6]
(base1.corner \Coord) -- (base1.corner \the\numexpr\Coord+4\relax);
}
\fill[orange!40,opacity=0.4]
(base1.corner 2) --
(appex1) --
(base1.corner 6) -- cycle;
\draw[red] (0,0) -- (appex1);
\end{tikzpicture}
\begin{tikzpicture}
\node[mypyr]
(base1) at (0,0) {};
\coordinate (appex1) at (0,4);
\coordinate (appex2) at (-2.5,4);
\foreach \Coord in {1,4,5,6,7,8}
{
\draw (base1.corner \Coord) -- (appex1);
\draw (base1.corner \Coord) -- (appex2);
}
\foreach \Coord in {2,3}
{
\draw[dashed] (base1.corner \Coord) -- (appex1);
\draw[dashed] (base1.corner \Coord) -- (appex2);
}
\foreach \Coord in {4,...,7}
{
\fill[blue,opacity=0.2]
(base1.corner \Coord) -- (base1.corner \the\numexpr\Coord+1\relax) -- (appex1) -- cycle;
\fill[green,opacity=0.2]
(base1.corner \Coord) -- (base1.corner \the\numexpr\Coord+1\relax) -- (appex2) -- cycle;
}
\fill[blue,opacity=0.2]
(base1.corner 8) -- (base1.corner 1) -- (appex1) -- cycle;
\fill[green,opacity=0.2]
(base1.corner 8) -- (base1.corner 1) -- (appex2) -- cycle;
\draw[red] (0,0) -- (appex1);
\draw[red] (0,0) -- (appex2);
\draw[red] (appex1) -- (appex2);
\node[mypyr,draw] at (0,0) {};
\foreach \Coord in {1,...,4}
{
\draw[opacity=0.6]
(base1.corner \Coord) -- (base1.corner \the\numexpr\Coord+4\relax);
}
\end{tikzpicture}
\end{document}