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.
- ¿Cuál es el código para hacer eso?
- 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}
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}
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}
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}
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}