これは非常に簡単な質問です。
ノードに「曲線」効果を追加することは可能ですか?
単純な長方形ノードを考えてみましょう。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw,minimum width=3cm,minimum height=2cm]{};
\end{tikzpicture}
\end{document}
次の画像のように曲げたいです
これはすべてのノード シェイプに適用できます。
答え1
これは による 1 つの可能な解決策ですtikz pics
。ここでは、 と呼ばれるマクロが、mynode
異なる x、y の長さと曲率を備えた 6 つの引数で定義されています。最後の 1 つは、曲線付きのテキスト ラベル用です。テキストがまったくない場合は、コード内のパス装飾を削除します。
同じ考え方は、三角形などの他の形状にも適用できますが、コードに多少の修正が必要になる場合があります。以下は引数の定義です。
#1=color, #2=x length, #3=y height, #4=inward bend angle, #5=outward bend angle, #6=text
コード
\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}