
デフォルトでは、線の太さは中心(元のパス)から左側と右側に広がっています。この画像をご覧くださいご覧のとおり、白い線が元のパスであり、白い線と重なる黒い線が太さであると考えてください。
質問:厚みを下向きと上向きに広げる方向を変えるにはどうすればいいでしょうか?
私がこれを尋ねる理由は、閉じたパスを別の閉じたパスに内接するように描くと、次のようになるからです。これ閉じたパスの内側は元のパスの下方向に厚みを持たせ、外側は元のパスの上方向に厚みを持たせて、画像がきれいに見えるようにしたいです。
MWE:
\documentclass[tikz,border=1mm]{standalone}
\usepackage{bm}
\usetikzlibrary{calc,arrows.meta}
\tikzset{
parallel segment/.style={
segment distance/.store in=\segDistance,
segment pos/.store in=\segPos,
segment length/.store in=\segLength,
to path={
($(\tikztostart)!\segPos!(\tikztotarget)!\segLength/2!(\tikztostart)!\segDistance!90:(\tikztotarget)$) --
($(\tikztostart)!\segPos!(\tikztotarget)!\segLength/2!(\tikztotarget)!\segDistance!-90:(\tikztostart)$) \tikztonodes
},
% Default values
segment pos=.5,
segment length=1cm,
segment distance=-2.5mm,
},
}
\begin{document}
\begin{tikzpicture}[>=Latex]
\coordinate (A) at (0,0);
\coordinate (B) at (7,1);
\coordinate (C) at (3.5,4);
\coordinate (D) at (3.5,.5);
\coordinate (E) at (5.25,2.5);
\coordinate (F) at (1.75,2);
\draw [line width=3pt] (A)--(B)--(C)--cycle
node[] at (1.7,.8){$\bm{C}$};
\draw [line width=3pt] (D)--(E)--(F)--cycle;
\draw[->, line width=1.5pt, red] (A) to[parallel segment] (B);
\draw[->, line width=1.5pt, red] (B) to[parallel segment] (C);
\draw[->, line width=1.5pt, red] (C) to[parallel segment] (A);
\end{tikzpicture}
\end{document}
答え1
最も簡単な解決策は、プロットをクリップすることです。同じ形状を使用してクリップして描画すると、各線の内側の半分だけが表示されます。
以下は余分な角を切り取るだけです。
\documentclass[tikz,border=1mm]{standalone}
\usepackage{bm}
\usetikzlibrary{calc,arrows.meta}
\tikzset{
parallel segment/.style={
segment distance/.store in=\segDistance,
segment pos/.store in=\segPos,
segment length/.store in=\segLength,
to path={
($(\tikztostart)!\segPos!(\tikztotarget)!\segLength/2!(\tikztostart)!\segDistance!90:(\tikztotarget)$) --
($(\tikztostart)!\segPos!(\tikztotarget)!\segLength/2!(\tikztotarget)!\segDistance!-90:(\tikztostart)$) \tikztonodes
},
% Default values
segment pos=.5,
segment length=1cm,
segment distance=-2.5mm,
},
}
\begin{document}
\begin{tikzpicture}[>=Latex]
\coordinate (A) at (0,0);
\coordinate (B) at (7,1);
\coordinate (C) at (3.5,4);
\coordinate (D) at (3.5,.5);
\coordinate (E) at (5.25,2.5);
\coordinate (F) at (1.75,2);
\draw [line width=3pt] (A)--(B)--(C)--cycle
node[] at (1.7,.8){$\bm{C}$};
\begin{scope}
\clip (A)--(B)--(C)--cycle;
\draw [line width=3pt] (D)--(E)--(F)--cycle;
\end{scope}
\draw[->, line width=1.5pt, red] (A) to[parallel segment] (B);
\draw[->, line width=1.5pt, red] (B) to[parallel segment] (C);
\draw[->, line width=1.5pt, red] (C) to[parallel segment] (A);
\end{tikzpicture}
\end{document}