使用文件中保存的图案填充区域

使用文件中保存的图案填充区域

使用以下代码,如何使用保存在外部文件中的图案作为封闭区域来填充这个封闭区域。

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{frame}[t]
\frametitle{}
\begin{tikzpicture}[scale=.9, transform shape]
\node [thin, black] at (0,0) (i){x};
\draw [very thick, blue] (i.center) node (ii){} to [out=5, in=170] ++(0.:7.cm) -- +(-90:2.2cm)  to [out=130, in=-170, looseness=.6] (ii.center) -- cycle;
\end{tikzpicture}
\end{frame} 
\end{document} 

在此处输入图片描述

在此处输入图片描述

答案1

Beamer 正在加载graphicx包,我使用了该包中提供的示例图像。

我使用path picture在部分中定义的选项广义填充:使用任意图片填充路径TikZ 手册。

截屏

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{frame}[t]
\frametitle{}
\begin{tikzpicture}[scale=.9, transform shape]
\node [thin, black] at (0,0) (i){};
\draw [very thick, blue] (i.center) node (ii){} to [out=5, in=170] ++(0.:7.cm) -- +(-90:2.2cm)  to [out=130, in=-170, looseness=.6] (ii.center) -- cycle
[path picture={\node at (path picture bounding box.center) {\includegraphics{example-image}};}];
\end{tikzpicture}
\end{frame} 
\end{document} 

图片大小

正如@zarko 正确指出的那样,图像必须大于路径。否则,就会出现漏洞。

一个解决方案是使用放大因子,这里scale=1.4

图片大小

\documentclass{article}
\usepackage[margin=10mm]{geometry}
\usepackage{graphicx,mwe,tikz}

\begin{document}

\Huge{SCALE=1}
\smallskip

\newcommand{\facteur}{1}

\begin{tikzpicture}
\node [thin, black] at (0,0) (i){};
\node[] at (i.center){\includegraphics[scale=\facteur]{example-image}};
\draw [very thick, blue,fill=cyan!80,fill opacity=.5] (-2.7,1) node (ii){} to [out=5, in=170] ++(0.:7.cm) -- +(-90:2.2cm)  to [out=130, in=-170, looseness=.6] (ii.center) -- cycle
[path picture={\node at (path picture bounding box.center) {\includegraphics[scale=\facteur]{example-image}};}];

\draw(current bounding box.south east)rectangle(current bounding box.north west);
\end{tikzpicture}


\bigskip
\Huge{SCALE=1}
\smallskip

\begin{tikzpicture}
\node [thin, black] at (0,0) (i){};
\node[] at (i.center){\includegraphics[scale=\facteur]{example-image-duck}};
\draw [very thick, blue,fill=cyan!80,fill opacity=.5] (-2.7,1) node (ii){} to [out=5, in=170] ++(0.:7.cm) -- +(-90:2.2cm)  to [out=130, in=-170, looseness=.6] (ii.center) -- cycle
[path picture={\node at (path picture bounding box.center) {\includegraphics[scale=\facteur]{example-image-duck}};}];

\draw(current bounding box.south east)rectangle(current bounding box.north west);
\end{tikzpicture}

\renewcommand{\facteur}{1.4}
\bigskip
\Huge{SCALE=1.4}
\smallskip

\begin{tikzpicture}
\node [thin, black] at (0,0) (i){};
\node[] at (i.center){\includegraphics[scale=\facteur]{example-image-duck}};
\draw [very thick, blue,fill=cyan!80,fill opacity=.5] (-2.7,1) node (ii){} to [out=5, in=170] ++(0.:7.cm) -- +(-90:2.2cm)  to [out=130, in=-170, looseness=.6] (ii.center) -- cycle
[path picture={\node at (path picture bounding box.center) {\includegraphics[scale=\facteur]{example-image-duck}};}];

\draw(current bounding box.south east)rectangle(current bounding box.north west);
\end{tikzpicture}
\end{document}

答案2

像这样?

在此处输入图片描述

由于我没有您的模式文件,所以我使用包example-image-duck中定义的模式文件graphicx

梅威瑟:

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}
\begin{frame}
\frametitle{}
\begin{tikzpicture}[scale=.9, transform shape]
\coordinate (i);
\path[preaction={draw=blue!50, ultra thick},clip] 
    (i) to [out=5, in=170] ++(0.:7.cm) -- +(-90:2.2cm)  
        to [out=130, in=-170, looseness=.6] (i);
\node (j) [minimum width=\linewidth, minimum height=0.5\linewidth, 
           right=-5mm of i] 
    {\includegraphics[width=\linewidth]{example-image-duck}};
\end{tikzpicture}
\end{frame}
\end{document} 

相关内容