我想在 TikZ 中绘制如下所示的平滑圆角图形,但使用更简单(且更易于修改)的代码。我的意思是无需手动计算曲线所有顶点的良好切线。这样可以更轻松地绘制不太对称的三角形和其他多边形。
请注意,与问题不同
我想要轮廓弯曲进出以形成凸起。
我想知道圆角选项是否允许我通过绘制一个六边形来实现这一点,其中交替顶点离中心越来越近。到目前为止,我的尝试都失败了,原因如 TikZ 和 PGF 手册第 587 页所述。即使我将角的曲线做得很小,线条也会“突然延伸到另一端”,看起来很糟糕。这可能超出了选项的预期。
但有办法吗?
\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,3.5)
to [out=0,in=120] (1.5,2.7)
to [out=-60,in=50] (3,0)
to [out=-130,in=0] (0,.05)
to [out=180,in=-50] (-3,0)
to [out=130,in=-120] (-1.5,2.7)
to [out=60,in=180] (0,3.5);
\end{tikzpicture}
\end{document}
答案1
一个简单的方法(与这里的想法相同:带有参数列表和子程序计算的 Tikz Macro)
\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\tikzset{
bulging/.style 2 args={
every to/.style={bend left=#1},
preaction={
fill,draw,join=round,line width=#2+1},
white,fill,draw,join=round,line width=#2,
},
}
\tikz\draw[bulging={20}{60}](0,0)to(3,0)to(2,2)to cycle;
%
\hfill
%
\tikz\draw[bulging={40}{50}](0,0)to(3,0)to(4,2)to(2,5)to(-1,3)tocycle;
\vfill
\tikz\draw[bulging={50}{50}](0,0)to(4,0)to(6,2)to(7,4)to(5,8)to(1,8)to(-1,5)tocycle;
\end{document}