Wie erstellt man diese Linien in Tikz?

Wie erstellt man diese Linien in Tikz?

Hier die Zeilen:

Linien

Ich habe keine Ahnung, wie ich die kleine Beule machen soll. Wenn es doch nur gerade Linien wären :)

Die Farben sind:

  • grün: #9DC634
  • Orange: #F39614
  • rosa: #F39614
  • lila: #AB7CB5

Vielen Dank für Ihre Hilfe

Antwort1

Aktualisieren:Ich füge eine zweite Möglichkeit hinzu, dies zu tun.

  1. Die erste Möglichkeit verwendet doubleLinie und clips.
  2. Die zweite Möglichkeit verwendet arcs. Dies ist einfacher, aber nicht für jede Art von Kurve gültig.
\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}

Bildbeschreibung hier eingeben

Antwort2

Bézierkurven parallel zu machen ist kein triviales Problem. Hier ist ein dritter, etwas komplizierterer Ansatz.

Code

\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}

Ausgabe

Bildbeschreibung hier eingeben

Antwort3

Man könnte benddie Zeile etwas anders formulieren:

\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}

Bildbeschreibung hier eingeben

Antwort4

Hier ist eine andere Lösung mittikz-nfold, Anerkennung andiese Antwortfür die Farben.

Die Vorteile dieser Lösung liegen darin, dass sie mit fast jedem Pfad funktioniert und dass die gekrümmten Teile alle einen konstanten Abstand voneinander haben. Nachteile sind, dass Sie eine andere Bibliothek laden müssen und dass die Kompilierungszeiten etwas länger sein können.

Aktualisieren

Die Benutzeroberfläche ist mit tikz-nfold Version 0.1.0 einfacher geworden:

\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-facher Screenshot

verwandte Informationen