从 Tikz ClipPicture 中提取内部部分

从 Tikz ClipPicture 中提取内部部分

考虑MWE:

\documentclass{article}
    \usepackage{tikz}
    \usepackage{graphicx}

% % COMPILED WITH PDFLATEX

    \newif\ifdeveloppath
    \tikzset{/tikz/develop clipping path/.is if=developpath,
      /tikz/develop clipping path=true}

    \newcommand{\clippicture}[2]{
      \begin{tikzpicture}
      \ifdeveloppath
      \node[anchor=south west,inner sep=0] (image) at (0,0) {\includegraphics[width=1.0\linewidth,keepaspectratio]{example-image-a}};
    \else
      \node[anchor=south west,inner sep=0] (image) at (0,0) {\phantom{\includegraphics[width=1.0\linewidth,keepaspectratio]{example-image-a}}};
    \fi
    \pgfresetboundingbox
    \begin{scope}[x={(image.south east)},y={(image.north west)}]
      % Draw grid 
      \ifdeveloppath
        \draw[help lines,xstep=.02,ystep=.02] (0,0) grid (1,1);
        \foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; }
        \foreach \y in {0,1,...,9} { \node [anchor=east] at (0,\y/10) {0.\y}; }
        \draw[red, ultra thick] #2 -- cycle;
      \else
        % Use the path to clip
        \path[clip] #2 -- cycle;
        \node[anchor=south west,inner sep=0pt] {\includegraphics[width=1.0\linewidth,keepaspectratio]{example-image-a}};
      \fi
    \end{scope}
    \end{tikzpicture}
    }

\begin{document}
\thispagestyle{empty}

     \clippicture{[width=1.0\textwidth]{some-image}}{(0.359,0.268) -- (0.48,0.73) -- (0.52,0.73) -- (0.64,0.27) -- (0.60,0.27) -- (0.562,0.403) -- (0.43,.403) -- (0.395, 0.268) -- (0.359,0.268)}

\newpage
\thispagestyle{empty}

    \tikzset{develop clipping path=false}

\begin{center}
    \clippicture{[width=1.0\textwidth]{some-image}}{(0.359,0.268) -- (0.48,0.73) -- (0.52,0.73) -- (0.64,0.27) -- (0.60,0.27) -- (0.562,0.403) -- (0.43,.403) -- (0.395, 0.268) -- (0.359,0.268)}
\end{center}
\end{document}

输出为:

在此处输入图片描述

在此处输入图片描述

问题:我的剪切路径是一条闭合电路;因此,输出是大写字母的外部A. 我怎样才能完成这封信的提取A剪掉信件内部的相应部分A

谢谢。

答案1

将“A”的内三角形逆时针添加到您的路径中(使用“非零规则”),使其:

(0.359,0.268) -- (0.48,0.73) -- (0.52,0.73) -- (0.64,0.27) -- (0.60,0.27) -- (0.562,0.403) -- (0.43,.403) -- (0.395, 0.268) -- (0.359,0.268) (0.440,0.438) -- (0.555,0.438) -- (0.498,0.675)  -- (0.44,0.44)

灰色网格上带有红色轮廓的字母“A” 一个“A”

当创建封闭路径时,最好使用cycle而不是重复第一个坐标。这使得路径:

(0.359,0.268) -- (0.48,0.73) -- (0.52,0.73) -- (0.64,0.27) -- (0.60,0.27) -- (0.562,0.403) -- (0.43,.403) -- (0.395, 0.268) -- cycle (0.440,0.438) -- (0.555,0.438) -- (0.498,0.675) -- cycle

相关内容