Dibuja un prisma rectangular y etiqueta sus dimensiones.

Dibuja un prisma rectangular y etiqueta sus dimensiones.

Estoy tratando de preparar una hoja de trabajo para mis alumnos sobre cómo calcular el volumen de un prisma rectangular (cuboide). Usando el siguiente código logro generar el prisma rectangular, pero ¿cómo agrego las dimensiones? Me gustaría tener, por ejemplo, "4 cm" para el largo, colocado justo debajo de la línea de largo, "4 cm" para el ancho, colocado debajo a la derecha de la línea de ancho, y "6 cm" para la altura, colocado a la derecha de la línea de altura.

  1. ¿Cuál es el código para hacer eso?
  2. En términos generales, ¿cómo coloco estas dimensiones donde quiera? Es posible que desee rotar el prisma y colocar las dimensiones arriba, abajo, en el centro, a la derecha o a la izquierda de los contornos del prisma. ¿Cómo puedo hacer eso?

Mi código:

\begin{tikzpicture}
\pgfmathsetmacro{\x}{1}
\pgfmathsetmacro{\y}{1}
\pgfmathsetmacro{\z}{1.5}
\path (0,0,\y) coordinate (A) (\x,0,\y) coordinate (B) (\x,0,0) coordinate (C) (0,0,0)
coordinate (D) (0,\z,\y) coordinate (E) (\x,\z,\y) coordinate (F) (\x,\z,0) coordinate (G)
(0,\z,0) coordinate (H);
\draw (A)--(B)--(C)--(G)--(F)--(B) (A)--(E)--(F)--(G)--(H)--(E);
\draw [black] (A)--(D)--(C) (D)--(H);
\end{tikzpicture}

Respuesta1

\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{calc}
\begin{document}

\begin{tikzpicture}[>=latex,scale=2]
\pgfmathsetmacro{\x}{1}
\pgfmathsetmacro{\y}{1}
\pgfmathsetmacro{\z}{1.5}
\path (0,0,\y) coordinate (A) (\x,0,\y) coordinate (B) (\x,0,0) coordinate (C) (0,0,0)
coordinate (D) (0,\z,\y) coordinate (E) (\x,\z,\y) coordinate (F) (\x,\z,0) coordinate (G)
(0,\z,0) coordinate (H);
\draw (A)--(B)--(C)--(G)--(F)--(B) (A)--(E)--(F)--(G)--(H)--(E);
\draw (A)--(D)--(C) (D)--(H);

\draw[thin,|<->|] ($(A)+(0,-4pt)$) -- node[below]{4cm}($(B)+(0,-4pt)$);
\draw[thin,|<->|] ($(B)+(-45:4pt)$) -- node[below,sloped]{4cm}($(C)+(-45:4pt)$);
\draw[thin,|<->|] ($(C)+(4pt,0)$) -- node[below,sloped]{6cm}($(G)+(4pt,0)$);

\end{tikzpicture}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Para empezar, es posible que desees ver la posición de las coordenadas. Eso se puede hacer por

\begin{tikzpicture}
\pgfmathsetmacro{\x}{1}
\pgfmathsetmacro{\y}{1}
\pgfmathsetmacro{\z}{1.5}
\path (0,0,\y) coordinate (A) (\x,0,\y) coordinate (B) (\x,0,0) coordinate (C) (0,0,0)
coordinate (D) (0,\z,\y) coordinate (E) (\x,\z,\y) coordinate (F) (\x,\z,0) coordinate (G)
(0,\z,0) coordinate (H);
\draw (A)--(B)--(C)--(G)--(F)--(B) (A)--(E)--(F)--(G)--(H)--(E);
\draw [black] (A)--(D)--(C) (D)--(H);
\foreach \coor in {A,B,...,H}{%
  \node[above] at (\coor){\coor};
}
\end{tikzpicture}

ingrese la descripción de la imagen aquí

Con eso es más fácil incluir el texto como nodos en el dibujo (también puse las líneas ocultas en puntos):

\begin{tikzpicture}
\pgfmathsetmacro{\x}{1}
\pgfmathsetmacro{\y}{1}
\pgfmathsetmacro{\z}{1.5}
\path (0,0,\y) coordinate (A) (\x,0,\y) coordinate (B) (\x,0,0) coordinate (C) (0,0,0)
coordinate (D) (0,\z,\y) coordinate (E) (\x,\z,\y) coordinate (F) (\x,\z,0) coordinate (G)
(0,\z,0) coordinate (H);
\draw (A)-- node[below]{4cm} (B)-- node[below,sloped]{4cm} (C)--(G)--(F)--(B) (A)-- node[above,sloped]{6cm}(E)--(F)--(G)--(H)--(E);
\draw [dashed,black] (A)--(D)--(C) (D)--(H);
\end{tikzpicture}

ingrese la descripción de la imagen aquí

La rotación se puede realizar cambiando los vectores básicos del sistema de coordenadas. Tikz traza las líneas en un espacio bidimensional, pero puedes usar vectores tridimensionales (proyectados en 2 dimensiones). (Dado que las coordenadas en el ejemplo y tikz usan diferentes órdenes de y y z, existe una ligera confusión en el código siguiente):

\begin{tikzpicture}
\draw[->](0,0,0) -- (1,0,0) node[pos=1.2]{$x$};
\draw[->](0,0,0) -- (0,1,0) node[pos=1.2]{$z$};
\draw[->](0,0,0) -- (0,0,1) node[pos=1.2]{$y$};
\end{tikzpicture}
\begin{tikzpicture}[x={(0.7cm,-0.7cm)},y={(0.2cm,0.7cm)},z={(-0.7cm,-0.7cm)}]
\draw[->](0,0,0) -- (1,0,0) node[pos=1.2]{$x$};
\draw[->](0,0,0) -- (0,1,0) node[pos=1.2]{$z$};
\draw[->](0,0,0) -- (0,0,1) node[pos=1.2]{$y$};
\end{tikzpicture}

ingrese la descripción de la imagen aquí

Para rotar el prisma se puede usar:

\begin{tikzpicture}[x={(0.7cm,-0.7cm)},y={(0.2cm,0.7cm)},z={(-0.7cm,-0.7cm)}]
\pgfmathsetmacro{\x}{1}
\pgfmathsetmacro{\y}{1}
\pgfmathsetmacro{\z}{1.5}
\path (0,0,\y) coordinate (A) (\x,0,\y) coordinate (B) (\x,0,0) coordinate (C) (0,0,0)
coordinate (D) (0,\z,\y) coordinate (E) (\x,\z,\y) coordinate (F) (\x,\z,0) coordinate (G)
(0,\z,0) coordinate (H);
\draw (A)-- node[below,sloped,]{4cm} (B)-- node[below,sloped]{4cm} (C)--(G)--(F)--(B) (A)-- node[above,sloped]{6cm}(E)--(F)--(G)--(H)--(E);
\draw [dashed,black] (A)--(D)--(C) (D)--(H);
\end{tikzpicture}

ingrese la descripción de la imagen aquí

información relacionada