13

I have been trying to make an image but have been unsuccessful. Typically I use the tikz environment but can still not figure it out.

I would love some help! Thank you!Hand rendered image of what I am trying to create

First section of code image results

\documentclass{article}
 \usepackage{tikz}
 \begin{document}
 \pagestyle{empty}

  \begin{figure}[bt]
  \centering
  \scalebox{0.6}
 {
 \begin{tikzpicture}[scale=5]
 \tikzstyle{vertex}=[circle,minimum size=20pt,inner sep=0pt]
 \tikzstyle{selected vertex} = [vertex, fill=red!24]
 \tikzstyle{selected edge} = [draw,line width=5pt,-,red!50]
 \tikzstyle{edge} = [draw,thick,-,black]
 \node[vertex] (v0) at (0.5,0.5) {};
 \node[vertex] (v1) at (0.5,1) {};
 \node[vertex] (v2) at (1,0.5) {};
 \node[vertex] (v3) at (1,1) {$V$};
 \node[vertex] (v4) at (0.615, 0.7) {$C$};
 \node[vertex] (v5) at (0.615,1.2) {};
 \node[vertex] (v6) at (1.14,0.7) {};
 \node[vertex] (v7) at (1.14, 1.2) {};

 \node[vertex] (v8) at (-0.5,-0.5) {};
 \node[vertex] (v9) at (-0.5, 1) {};
 \node[vertex] (v13) at (-0.08,1.6) {};
 \node[vertex] (v12) at (-0.08, 0.1) {};
 \node[vertex] (v10) at (1,-0.5) {};
 \node[vertex] (v14) at (1.42,0.1) {};
 \node[vertex] (v11) at (1,1) {};
 \node[vertex] (v15) at (1.42, 1.6) {};

 \draw[edge] (v0) -- (v1) -- (v3) -- (v2) -- (v0);
 \draw[edge] (v0) -- (v4) -- (v5) -- (v1) -- (v0);
 \draw[edge] (v2) -- (v6) -- (v7) -- (v3) -- (v2);
 \draw[edge] (v4) -- (v6) -- (v7) -- (v5) -- (v4);

 \draw[edge] (v8) -- (v9) -- (v13) -- (v12) -- (v8);
 \draw[edge] (v8) -- (v10) -- (v14) -- (v12) -- (v8);
 \draw[edge] (v10) -- (v11) -- (v15) -- (v14) -- (v10);
 \draw[edge] (v9) -- (v11) -- (v15) -- (v13) -- (v9);

  \end{tikzpicture}
  }
  \end{figure}
 \end{document}

and

Second section of code image results

 \usetikzlibrary{positioning}
 \large
 \pagestyle{empty}
 \begin{figure}

 \begin{tikzpicture}
        [cube/.style={very thick,black},
            grid/.style={very thin,gray},
            axis/.style={->,black,thick}]

 \begin{tikzpicture}[every node/.style={minimum size=1cm},on grid]
 \begin{scope}[every node/.append style={yslant=-0.5},yslant=-0.5]
 [cube/.style={very thick,black},
            axis/.style={->,blue,thick}]
   \draw[axis] (5,5,0) -- (-2,-2,0) node[anchor=west]{$x$};
   \shade[right color=gray!10, left color=black!50] (0,0) rectangle +(3,3);
   \node at (0.5,2.5) {};
   \node at (1.5,2.5) {};
   \node at (2.5,2.5) {};
   \node at (0.5,1.5) {};
   \node at (1.5,1.5) {};
   \node at (2.5,1.5) {};
   \node at (0.5,0.5) {};
   \node at (1.5,0.5) {};
   \node at (2.5,0.5) {};
   \draw (0,0) grid (3,3);
 \end{scope}

 \begin{scope}[every node/.append style={yslant=0.5},yslant=0.5]
 \draw[axis] (3,0,0) -- (8,-5,0) node[anchor=west]{$y$};

   \shade[right color=gray!70,left color=gray!10] (3,-3) rectangle +(3,3);
   \node at (3.5,-0.5) {};
   \node at (4.5,-0.5) {};
   \node at (5.5,-0.5) {};
   \node at (3.5,-1.5) {};
   \node at (4.5,-1.5) {};
   \node at (5.5,-1.5) {};
   \node at (3.5,-2.5) {};
   \node at (4.5,-2.5) {};
   \node at (5.5,-2.5) {};
   \draw (3,-3) grid (6,0);
 \end{scope}

 \begin{scope}[every node/.append style={
     yslant=0.5,xslant=-1},yslant=0.5,xslant=-1
   ]
   \draw[axis] (3,0,0) -- (8,5,0) node[anchor=west]{$z$};
   \shade[bottom color=gray!10, top color=black!80] (6,3) rectangle +(-3,-3);
   \node at (3.5,2.5) {};
   \node at (3.5,1.5) {};
   \node at (3.5,0.5) {};
   \node at (4.5,2.5) {};
   \node at (4.5,1.5) {};
   \node at (4.5,0.5) {};
   \node at (5.5,2.5) {};
   \node at (5.5,1.5) {};
   \node at (5.5,0.5) {};
   \draw (3,0) grid (6,3);  
 \end{scope}
 \end{tikzpicture}
 \end{tikzpicture}
 \end{figure}
12

Here's another option using tikz-3dplot:

enter image description here

The code; \BigSide and \SmallSide allow you to easily change the value for the sides:

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{patterns}

\begin{document}

\tdplotsetmaincoords{70}{120}
\begin{tikzpicture}[tdplot_main_coords]
\def\BigSide{5}
\def\SmallSide{1.5}
\pgfmathsetmacro{\CalcSide}{\BigSide-\SmallSide}

% The vertex at V
\tdplotsetcoord{P}{sqrt(3)*\BigSide}{55}{45}

\coordinate (sxl) at (\BigSide,\CalcSide,\BigSide);
\coordinate (syl) at (\CalcSide,\CalcSide,\BigSide);
\coordinate (szl) at (\CalcSide,\BigSide,\BigSide);

\draw[dashed] 
  (0,0,0) -- (Px)
  (0,0,0) -- (Py)
  (0,0,0) -- (Pz);
\draw[->] 
  (Px) -- ++ (1,0,0) node[anchor=north east]{$x$};
\draw[->]
   (Py) -- ++(0,1,0) node[anchor=north west]{$y$};
\draw[->] 
  (Pz) -- ++(0,0,1) node[anchor=south]{$z$};

\draw[thick]
  (Pxz) -- (P) -- (Pxy) -- (Px) -- (Pxz) -- (Pz) -- (Pyz) -- (P); 
\draw[thick]
  (Pyz) -- (Py) -- (Pxy);

\fill[pattern=north west lines,opacity=0.3]
  (\BigSide,\CalcSide,\CalcSide) -- (\CalcSide,\CalcSide,\CalcSide) -- (\CalcSide,\BigSide,\CalcSide) -- (\BigSide,\BigSide,\CalcSide) -- cycle;  
\draw[dashed]
  (\BigSide,\CalcSide,\CalcSide) -- (\CalcSide,\CalcSide,\CalcSide) coordinate (C) -- (\CalcSide,\BigSide,\CalcSide);

\fill[pattern=north east lines,opacity=0.3]
  (\BigSide,\CalcSide,\CalcSide) -- (\CalcSide,\CalcSide,\CalcSide) -- (\CalcSide,\CalcSide,\BigSide) -- (\BigSide,\CalcSide,\BigSide) -- (\BigSide,\CalcSide,\CalcSide) -- cycle;  
\draw[dashed]
  (\CalcSide,\CalcSide,\CalcSide) -- (\CalcSide,\CalcSide,\BigSide);  

\draw[thick] 
  (szl) -- (syl) -- (sxl) -- (\BigSide,\CalcSide,\CalcSide) -- (\BigSide,\BigSide,\CalcSide) -- (\CalcSide,\BigSide,\CalcSide) -- cycle;

\node[label=above:$V$,fill,circle,inner sep=1.75pt] at (P) {};
\node[shift={(-0.5pt,0,0)}] at (C) {$C$};
\end{tikzpicture}

\end{document}
8

Doubtless there are more efficient approaches but using coordinates of the form (<x>,<y>,<z>) in a 3D system will probably make things easier.

\documentclass[tikz,border=10pt,multi]{standalone}

\begin{document}
\begin{tikzpicture}
  \draw (5,0,0) coordinate (x) |- (0,5,0) coordinate [midway] (h) coordinate (y) -- (0,5,5) coordinate (a) -- (0,0,5) coordinate (z) -- (5,0,5) edge (x) -- (5,5,5) coordinate (v) edge (h)
  -- (a)  ;
  \draw [dashed] (0,0,0) coordinate (o) edge (x) edge (y) -- (z);
  \node [circle, minimum size=5pt, inner sep=0pt, fill, label=135:V] at (v) {};
  \draw [->] (x) -- +(3pt,0,0) node [midway,above] {$x$};
  \draw [->] (y) -- +(0,3pt,0) node [midway,right] {$y$};
  \draw [->] (z) -- +(0,0,3pt) node [midway,above] {$z$};
  \draw (v) -- ++(0,0,-2) coordinate (d) -- ++(-2,0,0) coordinate (e) -- ++(0,0,2) |- ++(2,-2,0) coordinate [midway] (f) -- ++(0,0,-2) coordinate (g) -- (d);
  \draw [dashed] (e) -- ++(0,-2,0) coordinate (c) edge (f) -- (g);
  \node [label=45:C] at (c) {};
\end{tikzpicture}
\end{document}

cube in cube

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.