以锯齿状样式剪切 tikz 和光栅图片

以锯齿状样式剪切 tikz 和光栅图片
  1. 有没有办法实现这种光栅图像的剪辑,而不仅仅是 tikz 图片? - 已解决,请参阅编辑#1
  2. 有没有更简单的解决方案可以使用 TikZ 实现此目的? - 已解决,请参阅编辑#1
  3. 如何让随机台阶线更加平滑一些?

锯齿状剪裁

这是我的最小工作示例:

\documentclass{article}

\usepackage{tikz}
\usepgflibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.pathmorphing}

\begin{document}

\begin{tikzpicture}
    \fill[black](0, 0) rectangle (72pt, 72pt);
\end{tikzpicture}
\hspace{72pt}
\begin{tikzpicture}
    \clip (0, 0) rectangle (72pt, 36pt);
    \fill[black](0, 0) rectangle (72pt, 72pt);
    \filldraw[white] (0pt, 0pt) -- (72pt, 0pt) -- (72pt, 7pt)
    decorate [decoration={random steps,segment length=2pt,amplitude=1pt}] {-- (0pt, 7pt)}
    -- cycle;
\end{tikzpicture}

\end{document}

编辑#1:我自己找到了一个更好的解决方案。我合并了clipfilldraw命令,因此在底部使用锯齿状随机线进行剪辑变得更容易一些。 平均能量损失

工作代码:

\begin{tikzpicture}
    \draw[clip] (0, 36pt)
    -- (0, 7pt)
    decorate [decoration={random steps,segment length=2pt,amplitude=1pt}] {-- (72pt, 7pt)}
    -- (72pt, 36pt)
    --cycle;
    \fill[black](0, 0) rectangle (72pt, 72pt);
\end{tikzpicture}

剪切一个 72pt * 72pt 的 png 图像(或任何光栅图像):

\begin{tikzpicture}
    \draw[clip] (0, 36pt)
    -- (0, 7pt)
    decorate [decoration={random steps,segment length=2pt,amplitude=1pt}] {-- (72pt, 7pt)}
    -- (72pt, 36pt)
    --cycle;
    \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=72pt]{black.png}};
\end{tikzpicture}

不过,还有两个问题尚未解答。让我重新表述一下我最初的第三个问题:

  • 如何将随机台阶线的边缘弄圆?

以简单的方式剪辑图片会引发另一个问题:

  • 有没有办法在开始时建立一个坐标系tikzpicture,这样在剪辑时不必使用精确的长度而是使用缩放?

答案1

我的问题的第一部分已经在问题本身中得到回答,请参阅编辑#1

对于圆角和在剪辑过程中处理长度时使用 [0,1] 间隔,我想出了这个解决方案:

\begin{tikzpicture}[x=72pt,y=36pt]
    \draw[clip] (0, 1)
    -- (0, 0.2)
    decorate [decoration={random steps,segment length=4pt,amplitude=2pt},
              rounded corners=1pt] {-- (1, 0.1)}
    -- (1, 1)
    --cycle;
    \node[anchor=south west,inner sep=0] (image) at (0,0)
        {\includegraphics[width=72pt]{black.png}};
\end{tikzpicture}

首先,我rounded corners向装饰路径添加了选项。其次,我在开始时指定了 tikzpicture 的确切大小:\begin{tikzpicture}[x=72pt,y=36pt]。这可能不是最优雅的解决方案,但效果很好,请参见下图(蓝色框显示了原始图片的大小)。

在此处输入图片描述

相关内容