如何绘制不规则凸形?

如何绘制不规则凸形?

我想画一些不规则的凸形状,中心有一个基站。

这是我尝试过的代码。但我无法保持其凸性。

\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}

\begin{document}
   \begin{tikzpicture}
   \fill[blue!24] plot[domain=0:360, smooth cycle] (\x:5+rnd*4);

   \end{tikzpicture}
 \end{document}

答案1

目前尚不清楚“随机”的含义,但如果您希望它看起来像“随机”,您可以从凸多边形开始,然后对其进行平滑。

为此,您可以使用rounded corners,但要小心,的参数rounded corners不应大于最短边的一半。

\documentclass[tikz,border=7pt]{standalone}
\begin{document}
  \begin{tikzpicture}
    \fill[blue!24, rounded corners=5mm] plot coordinates{(0,0) (1,0) (2,1) (1,3) (-1,1)}--cycle;
    \draw[red!10] plot coordinates{(0,0) (1,0) (2,1) (1,3) (-1,1)}--cycle;
  \end{tikzpicture}
 \end{document}

另一种可能性是与和 customfilldraw结合使用。line join=roundline width

\documentclass[tikz,border=7pt]{standalone}
\begin{document}
  \begin{tikzpicture}
    \filldraw[blue!24, line join=round, line width=1cm] plot coordinates{(0,0) (1,0) (2,1) (1,3) (-1,1)}--cycle;
    \draw[red!10] plot coordinates{(0,0) (1,0) (2,1) (1,3) (-1,1)}--cycle;
  \end{tikzpicture}
 \end{document}

在此处输入图片描述 在此处输入图片描述

如果你想要随机平滑,你可以这样做:

\documentclass[tikz,border=7pt]{standalone}
\begin{document}
  \begin{tikzpicture}[rr/.style={rounded corners=rnd*1cm}]
    \fill[blue!24] (0,0) foreach \c in {(1,0),(2,1),(1,3),(-1,1)}{[rr]--\c}[rr]--cycle;
    \draw[red!10] plot coordinates{(0,0) (1,0) (2,1) (1,3) (-1,1)}--cycle;
  \end{tikzpicture}
\end{document}

在此处输入图片描述

注意:这可以与随机点集的凸包相结合。

答案2

我在这里有点猜测,但我假设你想要一条通过随机点的平滑路径。也许有点像这里的深蓝色线?

在此处输入图片描述

这是通过元帖子,并且该方法遵循对 OP 的评论。

\documentclass[border=5mm]{standalone}
\usepackage{luatex85}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(1);
    path e, r, s;
    e = fullcircle xscaled 89 yscaled 55;
    r = for i=1 upto 8: point i + 1/8 normaldeviate of e -- endfor cycle;
    s = for i=1 upto 8: point i of r {point i+1 of r - point i-1 of r} .. endfor cycle;
    draw r withcolor 3/4 white;
    draw s withcolor 2/3 blue;
endfig;
\end{mplibcode}
\end{document}
  1. 定义椭圆
  2. r定义一条用直线连接椭圆上一些随机点的路径。
  3. 通过确保路径在点处沿着点 的方向向点p行进,定义一条通过所有这些点的平滑路径。(这就是 MP符号的作用)。p-1p+1{direction}

只要您确保随机性不太大,从而使点之间相距合理,这通常会给您带来一些凸的东西。

相关内容