\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{intersections}
\begin{document}
%
\begin{tikzpicture}
\node[name=w, rectangle, fill=darkgray, minimum width=3mm, minimum height = 6cm]{};
\path[name path=wnw] (w.north west)--++(-6, 0);
\path[name path=wv] (w.west)--++(128:6);
\path [name intersections={of=wnw and wv, by={B}}];
\draw (w.west)--(B);
\end{tikzpicture}
%
\end{document}
问题
为什么下面的方法不起作用?(我收到“未定义节点”错误。)
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{intersections}
\begin{document}
%
\begin{tikzpicture}
\node[name=w, rectangle, fill=darkgray, minimum width=3mm, minimum height = 6cm]{};
\path[name path=wnw] (w.north west)--++(-6, 0);
\path[name path=wv] (w.west)--++(128:6);
\coordinate (B) at (intersection of wnw and wv);
\draw (w.west)--(B);
\end{tikzpicture}
%
\end{document}
答案1
第二个示例使用弃用的语法库之前的版本,但如果您正确使用它,它仍然可以工作。不存在的intersections
概念和路径分别由两个坐标标识: 。不带括号的坐标。named path
A--B
在您的情况下,可以写一个带有括号的路径,w.north west--{++(-6,0)}
其中括号隐藏了第二个坐标括号。
\documentclass[tikz, border=1cm]{standalone}
%\usetikzlibrary{intersections}
\begin{document}
%
\begin{tikzpicture}
\node[name=w, rectangle, fill=darkgray, minimum width=3mm, minimum height = 6cm]{};
\path (w.north west)--++(-6, 0);
\path (w.west)--++(128:6);
\coordinate (B) at (intersection of w.north west--{++(-6,0)} and w.west--{++(128:6)});
\draw (w.west)--(B);
\end{tikzpicture}
%
\end{document}