TikZ 中相同绘制命令中的圆角半径不同

TikZ 中相同绘制命令中的圆角半径不同

是否可以在绘图命令的不同部分使用不同的圆角半径?

我正在创建一个弯曲的管子。我希望外半径大于内半径。我当然可以通过创建两个不同的绘制命令来实现这一点,但这样我就无法填充对象了。

\filldraw[draw=blue!50, fill=black!10, rounded corners=2] (1.9,15) -- (3.1,15) -- (3.1,14.6)
-- (3.3,14.6) -- (3.3,15.2) -- (3.5,15.2)-- (3.5,13.9) -- (3.3,13.9) --(3.3,14.5) --
(3.1,14.5) -- (3.1,14.1) -- (1.9,14.1) -- cycle;

我尝试了以下方法,但是它在本应是绿色的图形中间生成了一个白色菱形。

\documentclass[border=3mm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\filldraw node[fill=green,
append after command={[rounded corners=0pt](b.west)|-(b.north)},
append after command={[rounded corners=3pt](b.north)-|(b.east)},
append after command={[rounded corners=1pt](b.east)|-(b.south)},
append after command={[rounded corners=5pt](b.south)-|(b.west)}] (b) {Another piece of text};
\end{tikzpicture}

\end{document}

答案1

是的,rounded corners通过在路径中添加,可以在路径上的多个点指定具有不同值的键[rounded corners=<value>],然后该键将一直处于活动状态,直到路径结束或下一个rounded corners键。或者,正如 Qrrbirlbel 在评论中指出的那样,您也可以通过将选项括在 中来将其保留在路径的一部分中{ ... }。我在下面的示例中使用了这两种方法:

\documentclass[border=5mm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\filldraw[draw=blue!50, fill=black!10, rounded corners=3] (1.9,15)
-- (3.1,15) {[rounded corners=1]
-- (3.1,14.6) 
-- (3.3,14.6)}
-- (3.3,15.2)
-- (3.5,15.2)
-- (3.5,13.9)
-- (3.3,13.9) [rounded corners=1]
-- (3.3,14.5)
-- (3.1,14.5) [rounded corners=3]
-- (3.1,14.1) -- (1.9,14.1) -- cycle;
\end{tikzpicture}
\end{document}

相关内容