Tikz에서 해당 라인을 만드는 방법은 무엇입니까?

Tikz에서 해당 라인을 만드는 방법은 무엇입니까?

다음 줄은 다음과 같습니다.

윤곽

작은 충돌을 만드는 방법을 모르겠습니다. 직선이었다면 :)

색상은 다음과 같습니다:

  • 녹색: #9DC634
  • 주황색: #F39614
  • 핑크: #F39614
  • 보라색: #AB7CB5

당신의 도움을 주셔서 감사합니다

답변1

업데이트:두 번째 방법을 추가하겠습니다.

  1. 첫 번째 방법은 doubleline과 clips를 사용합니다.
  2. 두 번째 방법은 arcs를 사용합니다. 이 방법은 더 쉽지만 어떤 종류의 곡선에도 유효하지 않습니다.
\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

베지어 곡선을 평행하게 만드는 것은 사소한 문제가 아닙니다. 세 번째 해키 접근 방식은 다음과 같습니다.

암호

\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

당신은 bend라인을 조금 할 수 있습니다 :

\documentclass{article}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[rounded corners=0.2cm]
\draw[red] (0,0) -- (5,0) to[bend left=35] (7,0) -- (9,0);
\draw[green,yshift=1mm] (0,0) -- (5,0) to[bend left=35] (7,0) -- (9,0);
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

답변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}

n겹 스크린샷

관련 정보