
Tengo puntos con coordenadas irracionales porque estoy mezclando coordenadas polares y cartesianas. Me gustaría especificar una coordenada como el valor x de una cosa y el valor y de otra cosa.
En este ejemplo específico, quiero que las dos líneas de la izquierda tengan los mismos puntos finales izquierdos.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (left) at (155:2);
\coordinate (top) at (65:2);
\coordinate (bottom) at (245:2);
\coordinate (right) at (335:2);
\coordinate (leftEdge) at ($ (left) + (-2,0) $);
\coordinate (bottomEdge) at ($ (bottom) + (0,-2) $);
\path[draw=black] (left) -- (top) -- (right) -- (bottom) -- cycle;
\path[draw=blue] (left) -- (leftEdge);
\path[draw=black] (bottom) -- (bottomEdge);
\path[draw=red] (bottom) -- ++(-2,0);
\end{tikzpicture}
\end{document}
Creo que hay una manera de hacer esto con algo como (leftEdge.x,bottom.y)
, pero no he logrado que funcione.
¿Cómo puedo hacer que el borde rojo llegue tan a la izquierda como el borde azul?
Respuesta1
En su ejemplo, todo lo que necesita hacer es decir \path[draw=red] (bottom) -- (bottom-|leftEdge);
.Esta gran respuestale proporciona una explicación muy interesante de esta sintaxis.
\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (left) at (155:2);
\coordinate (top) at (65:2);
\coordinate (bottom) at (245:2);
\coordinate (right) at (335:2);
\coordinate (leftEdge) at ($ (left) + (-2,0) $);
\coordinate (bottomEdge) at ($ (bottom) + (0,-2) $);
\path[draw=black] (left) -- (top) -- (right) -- (bottom) -- cycle;
\path[draw=blue] (left) -- (leftEdge);
\path[draw=black] (bottom) -- (bottomEdge);
\path[draw=red] (bottom) -- (bottom-|leftEdge);
\end{tikzpicture}
\end{document}