나는 tikz를 사용하여 노드 사이에 뱀 코일 가장자리/경로를 그리지만 일부 가장자리에는 시작 또는 끝 노드 앞/뒤에 공백이 있습니다. 다음은 작은 예입니다.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary[positioning,decorations.pathmorphing]
\begin{document}
\begin{tikzpicture}
\tikzstyle{enclosed} = [draw, circle, inner sep=0pt, minimum size=.15cm, fill=black]
\tikzstyle{enclosedM} = [draw, circle, inner sep=0pt, minimum size=.15cm, fill=red]
\node[enclosed, label={left: $x$}] (x) at (0,2) {};
\node[enclosed, label={right: $y$}] (y) at (4,2) {};
\node[enclosed] (w) at (2,0) {};
\node[enclosed] (v) at (2,4) {};
\node[enclosedM, label={above: $z$}] (z) at (2,1) {};
\node[enclosedM, label={below: $t$}] (t) at (2,3) {};
\draw[decorate,decoration={snake,amplitude=.2mm}]
(x) -- (v)
(v) -- (y)
(x) -- (w)
(w) -- (y)
(x) -- (t)
(v) -- (t)
(y) -- (t)
(x) -- (z)
(w) -- (z)
(z) -- (y);
\end{tikzpicture}
\end{document}
중앙 하단 노드와 노드 사이에 약간의 공백이 있습니다.지. 또한 최상위 노드와 노드 사이에 공백이 있습니다.와이.
이는 "진폭"이 0mm로 설정된 경우에도 여전히 발생합니다. 이는 가장자리가 전혀 장식되지 않은 경우와 동일할 것이라고 생각했습니다. 다양한 조합으로 "포스트 길이" 및 "사전 길이" 옵션을 설정하면 일부 가장자리가 수정되지만 이전에는 괜찮았던 다른 가장자리에서도 동일한 문제가 발생합니다.
를 제거 하고 설정 없이 정상적으로 decorate, decorations={...}
사용 하면 제대로 작동하지만 가장자리가 물결 모양이 되지 않습니다. \draw
공백을 제거하여 일반 가장자리처럼 작동하지만 반 물결 모양으로 동작하도록 하려면 어떻게 해야 합니까?
답변1
장식을 조심스럽게 다뤄야 합니다. 왜 이런 일이 발생하는지 정확히 알지 못하지만 분명히 하나의 단일 \draw
명령에 여러 세그먼트를 넣기 때문입니다.
\draw
모든 라인 세그먼트에 대해 별도로 작성해야 합니다 . 또는 원래 버전과 유사하게 만들려면 다음 코드를 사용할 수 있습니다.
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}
\tikzset{
enclosed/.style={draw, circle, inner sep=0pt, minimum size=.15cm, fill=black},
enclosedM/.style={enclosed, fill=red}
}
\node[enclosed, label={left: $x$}] (x) at (0,2) {};
\node[enclosed, label={right: $y$}] (y) at (4,2) {};
\node[enclosed] (w) at (2,0) {};
\node[enclosed] (v) at (2,4) {};
\node[enclosedM, label={above: $z$}] (z) at (2,1) {};
\node[enclosedM, label={below: $t$}] (t) at (2,3) {};
\foreach\x in {
(x) -- (v),
(v) -- (y),
(x) -- (w),
(w) -- (y),
(x) -- (t),
(v) -- (t),
(y) -- (t),
(x) -- (z),
(w) -- (z),
(z) -- (y)
}
\draw[decorate,decoration={snake,amplitude=.2mm}] \x;
\end{tikzpicture}
\end{document}
답변2
두 가지 의견(실제 답변 아님): tikzstyle
더 이상 사용되지 않으며 선을 하나씩 그리면 문제가 없습니다. (문제가 로 인한 것인지 확인하지 않았습니다 tikzstyle
.)업데이트: 코드를 압축했으며 대괄호를 잡아준 @Zarko에게 큰 감사를 드립니다!
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}
\tikzset{Snake/.style={decorate,decoration={snake,amplitude=.2mm}},
enclosed/.style={draw, circle, inner sep=0pt, minimum size=.15cm,
fill=black},
enclosedM/.style={draw, circle, inner sep=0pt, minimum size=.15cm,
fill=red}}
\node[enclosed, label={left:$x$}] (x) at (0,2) {};
\node[enclosed, label={right:$y$}] (y) at (4,2) {};
\node[enclosed] (w) at (2,0) {};
\node[enclosed] (v) at (2,4) {};
\node[enclosedM, label={above:$z$}] (z) at (2,1) {};
\node[enclosedM, label={below:$t$}] (t) at (2,3) {};
\foreach \X in {x,y,v} \draw[Snake] (t) -- (\X);
\foreach \X in {x,y,w} \draw[Snake] (z) -- (\X);
\foreach \X in {x,y}{\foreach \V in {v,w} \draw[Snake] (\V) -- (\X);}
\end{tikzpicture}
\end{document}