Yo uso el siguiente código:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\draw[help lines] (0,0) grid (10,10);
\draw[very thick,rotate around={45:(2.3,5)}] (2.3,5) rectangle ++(4,0.3) ++(0,-0.15) node[inner sep=0pt,outer sep=0pt] (p2) {};
\draw[very thick,rotate around={-10:($(2.3,5)+(45:4)$)}] (2.3,5)++(45:4) rectangle ++(4,0.3)--++(0,0.2)--++(0.7,0)--++(0,-0.15)--++(-0.55,0)--++(0,-0.4)--++(0.55,0)--++(0,-0.15)--++(-0.7,0)--++(0,0.2)++(-4,0)++(0,0.15) coordinate (p3);
\draw[name path=2nd2] (p2)--+(45:2);
\draw[name path=3rd] (p3)--+(170:2);
\path[name intersections={of=2nd2 and 3rd,by=i23}];
\fill[red] (i23) circle (0.5pt);
\end{tikzpicture}
\end{document}
Aquí está el resultado:
Cuando hago zoom, noto que, a diferencia de (p3)
con coordinate
, hay una distancia entre (p2)
con node[inner sep=0pt,outer sep=0pt]
y la línea que comienza en (p2)
. ¿Alguien podría explicar qué causa la brecha? Gracias.
Respuesta1
Su nodo vacío todavía no está completamente vacío, incluso cuando inner sep
ambos outer sep
están configurados para 0pt
que tenga un espacio. Por otro lado, una coordenada es solo un punto en su sistema de coordenadas. Para obtener el mismo comportamiento con un nodo, también debe configurar minimum size=0pt
. Compare los tres nodos y la coordenada en el siguiente ejemplo.
\begin{tikzpicture}
\draw[gray!40] (0,0) grid (4,3);
\node[label=below:np] (np) at (1,2){};
\node[label=below:np2,inner sep=0pt,outer sep=0pt] (np2) at (2,2){};
\node[label=below:np3,inner sep=0pt,outer sep=0pt,minimum size=0pt] (np3) at (1,1){};
\coordinate[label=below:cp] (cp) at (2,1);
\foreach \angle in {0,45,...,315}{
\draw[very thin,red] (np.\angle) circle (0.2pt);
\draw[very thin,red] (np2.\angle) circle (0.2pt);
\draw[very thin,red] (np3.\angle) circle (0.2pt);
\draw[very thin,red] (cp.\angle) circle (0.2pt);
}
\end{tikzpicture}
En la parte superior izquierda hay un nodo normal, en la parte superior derecha un nodo con la separación interna y externa establecida en cero, en la parte inferior izquierda un nodo vacío establecido minimum size
en cero y en la parte inferior derecha una coordenada, los cuatro con pequeños círculos en todas las direcciones (separación de 45 grados).
En su ejemplo, eso significa que cuando se dibuja desde un nodo (p2)
hacia 45 grados, comienza en (p2.45)
, lo que le dará un pequeño espacio. Intenta cambiar a
\draw[name path=2nd2] (p2.center)--+(45:2);
o cambiar (p2)
para ser un coordinate
, o agregar minimum size=0pt
.