Wie krümme ich einen Tikz-Knoten?

Wie krümme ich einen Tikz-Knoten?

Das ist eine sehr einfache Frage.

Ist es möglich, einem Knoten einen „Kurven“-Effekt hinzuzufügen?

Betrachten Sie einen einfachen rechteckigen Knoten:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw,minimum width=3cm,minimum height=2cm]{};
\end{tikzpicture}
\end{document}

Ich möchte es wie im folgenden Bild krümmen

Bildbeschreibung hier eingeben

Dies sollte auf alle Knotenformen anwendbar sein.

Antwort1

Dies ist eine mögliche Lösung über tikz pics. Hier wird ein Makro mynodemit 6 Argumenten definiert, das mit unterschiedlichen x-, y-Längen und Krümmungen ausgestattet ist. Das letzte ist für Textbeschriftungen mit Kurve. Wenn überhaupt kein Text vorhanden ist, entfernen Sie die Pfaddekoration im Code.

Die gleiche Idee kann auf andere Formen angewendet werden, z. B. Dreiecke, aber der Code muss möglicherweise angepasst werden. Im Folgenden finden Sie die Definitionen der Argumente

#1=color, #2=x length, #3=y height, #4=inward bend angle, #5=outward bend angle, #6=text

Bildbeschreibung hier eingeben

Code

\documentclass[border=10pt]{standalone}%{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.text}
\tikzset{%
pics/.cd,
mynode/.style args={#1#2#3#4#5#6}{
code={\node[inner sep=0pt,outer sep=0pt] at (0,0) (a) {};
\path[fill=#1] 
(a) to[bend right=#4] ++(#2,0) -- ++(0,#3) to[bend left=#5] ++(-#2,0) -- cycle;
\path[postaction={decorate},           % remove this path if no text decoration.
         decoration={raise=-15pt,
         text along path, text={#6},
         text align={left indent ={1cm}}}] 
(a) to[bend right=#4] ++(#2,0); 
}},
}

% #1=color, #2=x length, #3=y height, #4= inward bend  angle, #5= outward bend angle, #6=text

\begin{document}
\begin{tikzpicture}
  \pic {mynode={purple}{6cm}{-1cm}{20}{10}{This is my curved text.}};
  \pic at (0,-2) {mynode={olive}{6cm}{-2cm}{30}{20}{This is my curved text.}};
  \pic at (0,-5) {mynode={blue}{6cm}{-2cm}{40}{30}{This is my curved text.}};
\end{tikzpicture}
\end{document}

verwandte Informationen