
答え1
アップデート:2 番目の方法を追加します。
- 最初の方法は、
double
line とclip
s を使用します。 - 2 番目の方法では
arc
s を使用します。この方法は簡単ですが、どの種類の曲線にも有効ではありません。
\documentclass[tikz,border=2mm]{standalone}
\newcommand{\myline}{(0,0) -- (5,0) to[out=0,in=180] (6,0.25) to[out=0,in=180] (7,0) -- (8,0)}
\definecolor{mygreen} {HTML}{9DC634}
\definecolor{myorange}{HTML}{F39614}
\definecolor{mypink} {HTML}{FF00FF} % changed
\definecolor{mypurple}{HTML}{AB7CB5}
\begin{document}
\begin{tikzpicture}
\useasboundingbox (-0.5,-1.5) rectangle (8.5,1);
% first way
\begin{scope}
\clip (0,-1) rectangle (8,1);
\begin{scope}
\clip\myline |- (0,1) --cycle;
\draw[mypurple,double distance=1.5mm-\pgflinewidth] \myline;
\draw[mypink ,double distance=0.5mm-\pgflinewidth] \myline;
\end{scope}
\begin{scope}
\clip\myline |- (0,-1) --cycle;
\draw[mygreen ,double distance=1.5mm-\pgflinewidth] \myline;
\draw[myorange,double distance=0.5mm-\pgflinewidth] \myline;
\end{scope}
\end{scope}
% second way
\begin{scope}[shift={(0,-1)}]
\foreach[count=\ii]\i in {mygreen,myorange,mypink,mypurple}
\draw[draw=\i] (0,0.05*\ii) --++ (1,0) arc (270:290:1.5-0.05*\ii) arc (110:70:2+0.05*\ii)
arc (250:270:1.5-0.05*\ii) -- (8,0.05*\ii);
\end{scope}
\end{tikzpicture}
\end{document}
答え2
ベジェ曲線を平行にするのは簡単な問題ではありません。ここでは 3 番目のハッキーなアプローチを紹介します。
コード
\documentclass[tikz]{standalone}
\begin{document}
\tikz[
very thick,
loo/.style args={#1:#2}{#1 looseness=1.05^\i,#2 looseness=.95^\i}
] \foreach[count=\i]\c in {9DC634, F39614, FFC0CB, AB7CB5}
\color[HTML]{\c}
\draw[yshift=\i mm, out=0, in=180] (0,0) --++(right:3)
to[loo=in:out] ++(2,.5) to[loo=out:in] ++(2,-.5) -- ++(right:1);
\end{document}
出力
答え3
答え4
もう一つの解決策は、tikz-nfold、クレジットこの答え色については。
このソリューションの利点は、ほぼすべてのパスで機能し、曲線部分がすべて互いに一定の距離にあることです。欠点は、別のライブラリをロードする必要があることと、コンパイル時間が少し長くなる可能性があることです。
アップデート
tikz-nfold バージョン 0.1.0 ではインターフェースがシンプルになりました。
\usepackage{tikz}
\usetikzlibrary{nfold}
[...]
\begin{tikzpicture}
\path[save path=\mypath]
(0,0) -- (5,0) to[out=0, in=180] (7,.75) to[out=0, in=180] (9,0) -- (10,0);
\pgfsetlinewidth{1pt}
\foreach \mycolor [count=\i] in {9DC634,F39614,FF00FF,AB7CB5}
\definecolor{tempcolor}{HTML}{\mycolor}
\color{tempcolor}
\pgfoffsetpathindex{\mypath}{8pt}{\i}{4}
\pgfusepathqstroke;
\end{tikzpicture}