TikZ 圆角可以做出凸起的曲线三角形吗?

TikZ 圆角可以做出凸起的曲线三角形吗?

我想在 TikZ 中绘制如下所示的平滑圆角图形,但使用更简单(且更易于修改)的代码。我的意思是无需手动计算曲线所有顶点的良好切线。这样可以更轻松地绘制不太对称的三角形和其他多边形。

请注意,与问题不同

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

相关内容