이 코드를 고려해 보세요
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,intersections}
\begin{document}
\begin{tikzpicture}[node distance=-\pgflinewidth]
\node[fill=black] (a) {};
\node[fill=black, xshift=\linewidth] (c) {};
\node[xshift=\linewidth*0.7] (b) {...};
\draw [name path=line1] (a) -- (b);
\draw (b) -- (c);
\node[draw, rectangle, above=of a, yshift=0.5cm, xshift=1cm] (foo1) {Foo 1};
\node[draw, rectangle, right=0.5cm of foo1] (foo2) {Foo 2};
\draw (foo1) -- TODO;
\draw (foo2) -- TODO;
\end{tikzpicture}
\end{document}
노드 foo1 및 foo2에서 경로 line1까지 직선 수직선을 그리는 데 실패했습니다. 절대적인 좌표를 주고 싶지는 않습니다. 이 문제를 교차점으로 해결하려고 시도했지만 시작 위치가 노드이므로 작동하지 않는 것 같습니다. 어떤 제안이 있으십니까?
답변1
이와 같이?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,intersections}
\begin{document}
\begin{tikzpicture}[node distance=-\pgflinewidth]
\node[fill=black] (a) {};
\node[fill=black, xshift=\linewidth] (c) {};
\node[xshift=\linewidth*0.7] (b) {...};
\draw [name path=line1] (a) -- (b);
\draw (b) -- (c);
\node[draw, rectangle, above=of a, yshift=0.5cm, xshift=1cm] (foo1) {Foo 1};
\node[draw, rectangle, right=0.5cm of foo1] (foo2) {Foo 2};
\path[name path=fl1] (foo1.270)coordinate(f1)--++(-90:2);
\path[name path=fl2] (foo2.270)coordinate(f2)--++(-90:2);
\path[name intersections={of=fl1 and line1,by={a}}];
\path[name intersections={of=fl2 and line1,by={b}}];
\draw (f1)--(a);
\draw (f2)--(b);
% \draw (foo1) -- TODO;
% \draw (foo2) -- TODO;
\end{tikzpicture}
\end{document}
답변2
TikZ를 사용하면 통과하는 수평선의 교차점에 있는 점을 찾을 수 있으며 찾고 있는 a
수직선은 구문 또는 둘 다 구문 입니다 .foo1
(foo1|-a)
(a-|foo1)
TikZ 3.1.4 매뉴얼을 인용합니다.
일반적으로 의 의미는
(p |- q)
다음과 같습니다.수직선p
과 수평선 의 교차점q
.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,intersections}
\begin{document}
\begin{tikzpicture}[node distance=-\pgflinewidth]
\node[fill=black] (a) {};
\node[fill=black, xshift=\linewidth] (c) {};
\node[xshift=\linewidth*0.7] (b) {...};
\draw [name path=line1] (a) -- (b);
\draw (b) -- (c);
\node[draw, rectangle, above=of a, yshift=0.5cm, xshift=1cm] (foo1) {Foo 1};
\node[draw, rectangle, right=0.5cm of foo1] (foo2) {Foo 2};
\draw (foo1) -- (a-|foo1);
\draw (foo2) -- (a-|foo2);
\end{tikzpicture}
\end{document}