我可以使用图片填充 Tikz 元素吗?怎样做?

我可以使用图片填充 Tikz 元素吗?怎样做?

我想使用来自互联网或我的电脑的图片来填充立方体区域。我需要它具有木质纹理。我读过一些关于 tcolorbox 和 tikz 库的文章,但这对我没有帮助。

这是立方体:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}
        \pgfmathsetmacro{\cubex}{2}
        \pgfmathsetmacro{\cubey}{1}
        \pgfmathsetmacro{\cubez}{1}
            \draw[fill=brown] 
            (0,0,0) -- ++(-\cubex,0,0) -- ++(0,-\cubey,0) -- ++(\cubex,0,0) -- cycle;
            \draw[fill=brown] 
            (0,0,0) -- ++(0,0,-\cubez) -- ++(0,-\cubey,0) -- ++(0,0,\cubez) -- cycle;
            \draw[fill=brown] 
            (0,0,0) -- ++(-\cubex,0,0) -- ++(0,0,-\cubez) -- ++(\cubex,0,0) -- cycle;
    \end{tikzpicture}
\end{document}

图像如下:https://img.myloview.de/sticker/plywood-texture-with-gnarl-and-natural-wood-pattern-400-170218458.jpg

在此处输入图片描述

答案1

您可以使用该fill.image库:

\documentclass{article}
\usepackage{tikz}

\usetikzlibrary{fill.image}

\begin{document}
    \begin{tikzpicture}
        \pgfmathsetmacro{\cubex}{2}
        \pgfmathsetmacro{\cubey}{1}
        \pgfmathsetmacro{\cubez}{1}
            \draw[fill stretch image=Ikcfv.png] 
            (0,0,0) -- ++(-\cubex,0,0) -- ++(0,-\cubey,0) -- ++(\cubex,0,0) -- cycle;
            \draw[fill stretch image=Ikcfv.png] 
            (0,0,0) -- ++(0,0,-\cubez) -- ++(0,-\cubey,0) -- ++(0,0,\cubez) -- cycle;
            \draw[fill stretch image=Ikcfv.png] 
            (0,0,0) -- ++(-\cubex,0,0) -- ++(0,0,-\cubez) -- ++(\cubex,0,0) -- cycle;
    \end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

将图片以某个名称(我使用了名称wood.jpg)保存在某个文件夹中并复制路径。然后尝试此代码:

\documentclass{article}
\usepackage{tikz}

% paste the path to the picture e.g 
\graphicspath{ {C:/images/tikz} }

\begin{document}
    \begin{tikzpicture}[scale=2]
        \tikzset{
            wood/.style={%
                draw=black!10,
                path picture={%
                    \node at (path picture bounding box.center) {
                        \includegraphics[width=0.4\linewidth]{wood.jpg}};}}}
        \pgfmathsetmacro{\cubex}{2}
        \pgfmathsetmacro{\cubey}{1}
        \pgfmathsetmacro{\cubez}{1}
        \fill[wood]
        (0,0,0) -- ++(-\cubex,0,0) -- ++(0,-\cubey,0) -- ++(\cubex,0,0) -- cycle;
        \fill[wood]
        (0,0,0) -- ++(0,0,-\cubez) -- ++(0,-\cubey,0) -- ++(0,0,\cubez) -- cycle;
        \fill[wood]
        (0,0,0) -- ++(-\cubex,0,0) -- ++(0,0,-\cubez) -- ++(\cubex,0,0) -- cycle;
        \draw (0,0,0) -- ++(-\cubex,0,0) -- ++(0,-\cubey,0) -- ++(\cubex,0,0) -- cycle;
        \draw
        (0,0,0) -- ++(0,0,-\cubez) -- ++(0,-\cubey,0) -- ++(0,0,\cubez) -- cycle;
        \draw (0,0,0) -- ++(-\cubex,0,0) -- ++(0,0,-\cubez) -- ++(\cubex,0,0) -- cycle;
    \end{tikzpicture}
\end{document}

输出:

在此处输入图片描述

相关内容