
Quiero dibujar paralelogramos con ángulo, ancho y alto fijos, pero parece que trapezium
en PGF/TikZ no puedo especificar la altura sin cambiar los ángulos.
\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[trapezium, draw, minimum width=3cm,
trapezium left angle=120, trapezium right angle=60]
\node[trapezium stretches body]
at (0,0) {A};
\node[trapezium stretches body, rotate=-30]
at (0,1.5) {A rotate $-30^\circ$};
\node[minimum height=1cm, trapezium stretches body]
at (5,0) {B};
\node[minimum height=1cm, trapezium stretches body, rotate=-30]
at (5,1.8) {B rotate $-30^\circ$};
\node[minimum height=1cm]
at (0,-2) {C};
\node[minimum height=1cm, rotate=-30]
at (0,-4) {C rotate $-30^\circ$};
\node[minimum height=1cm, trapezium stretches]
at (5,-2) {D};
\node[minimum height=1cm, trapezium stretches, rotate=-30]
at (5,-4) {D rotate $-30^\circ$};
\end{tikzpicture}
\end{document}
La salida:
Quiero una versión verticalmente gruesa de A con el mismo ancho.
A y B tienen ángulos diferentes, solo sumando "altura minima". La versión rotada de A tiene lados verticales oeste/este, eso es lo que necesito. La versión rotada de B no tiene lados verticales oeste/este, sin embargo, necesito un paralelogramo "más alto" con los mismos ángulos y ancho que A.
C: Eliminando "trapecio estira el cuerpo" da como resultado un paralelogramo cuyo ancho y alto están fuera de control. D: Reemplazar "el trapecio estira el cuerpo" por "estiramientos del trapecio"No ayuda en nada.
Respuesta1
Quizás lo siguiente pueda explicar mejor lo que está sucediendo. Lo extraño que sucede cuando el texto se acorta y el nodo aumenta y se acorta a medida que el texto se alarga se debe a que se respetan las restricciones.
\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[trapezium, draw, minimum width=3cm,
trapezium left angle=120, trapezium right angle=60]
\node[trapezium stretches=false,minimum height=1cm]
at (0,0) {A};
\node[trapezium stretches=false,minimum height=1cm]
at (0,1.5) {\fbox{A long }};
\node[trapezium stretches=false,minimum height=1cm]
at (0,3) {\fbox{A long text}};
\draw[thick,green,|-|] (-1.5,-.5) -- (1.5,-0.5);
\draw[thick,green,|-|] (-1.5,0.5) -- (-1.5,-0.5);
\draw[thick,blue,|-|] (-1.5,1) -- (1.5,1);
\draw[thick,blue,|-|] (-1.5,1) -- (-1.5,2);
\draw[thick,red,|-|] (-1.5,2.5) -- (1.5,2.5);
\draw[thick,red,|-|] (-1.5,2.5) -- (-1.5,3.5);
\end{tikzpicture}
\end{document}
Vemos que se respeta el ancho mínimo y la altura mínima y luego, si hay espacio, entonces el nodo aumenta porque no hay restricción para eso. En otras palabras, solo hay restricciones en los mínimos, no en los máximos, por lo tanto, en el ejemplo inferior se respetan los mínimos y luego se intenta hacer coincidir los ángulos. Si el nodo es más corto y los ángulos son fijos, entonces no se respetará la altura mínima, etc. Por lo tanto, para esto se proponen algunas opciones, a saber, las opciones de estiramiento. Si convertimos todas las claves falsas en verdaderas, obtenemos
Entonces el ángel de la forma se deforma para cumplir con las restricciones. De manera similar, la trapezium stretches body
clave solo extiende el ancho. Pero si se establece el ángulo, entonces es cuestión de respetar las restricciones y luego verificar si el ángulo es factible. Por tanto, se necesita un tipo diferente de restricción. Esto podría ser usar etiquetas en el center
ancla o dibujarlas encima de los nodos independientemente del tamaño, etc.