次のコードを使用します。
\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}
出力は次のとおりです。
ズームインすると、(p3)
の場合とは対照的に、とから始まる線coordinate
の間に距離があることに気付きました。このギャップの原因を説明していただけますか? ありがとうございます。(p2)
node[inner sep=0pt,outer sep=0pt]
(p2)
答え1
inner sep
とouter sep
の両方が に設定されていても、空のノードは完全に空ではなく、0pt
スペースがあります。一方、座標は座標系内の点にすぎません。ノードで同じ動作を得るには、 も設定する必要がありますminimum size=0pt
。以下の例で、3 つのノードと座標を比較してください。
\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}
左上には通常のノード、右上には内側と外側の分離がゼロに設定されたノード、左下にはminimum size
ゼロに設定された空のノード、右下には座標があり、4 つのノードすべてにすべての方向 (45 度の分離) に小さな円があります。
あなたの例では、ノードから(p2)
45度に向かって描画する場合(p2.45)
、 から始まるため、小さな隙間ができることになります。 に変更してみてください。
\draw[name path=2nd2] (p2.center)--+(45:2);
(p2)
またはに変更するかcoordinate
、 を追加しますminimum size=0pt
。