Latex 包括花图案成三角形,用于制作巨大的十二面体

Latex 包括花图案成三角形,用于制作巨大的十二面体,latex,drawing,tikz,Latex,Drawing,Tikz,我正在尝试制作3d图形(大十二面体,小星状十二面体),直到现在我还在使用乳胶中的tikz包。使用\coordinate和\draw函数,我成功地为这些模型生成了精确的模具 现在,我不再制作多面体,而是尝试仅使用tikz向其添加花卉图案,因为我不擅长素描 这就是将jpg图像(带有花卉图案)导入到使用tikz绘制的三角形中,以便为多面体制作模板,如: 我知道如何在latex中导入图形,以及如何使用tikz制作几何图案,但不知道如何将jpg文件“裁剪”为三角形或任何其他坐标在tikz中指定的多边形

我正在尝试制作3d图形(大十二面体,小星状十二面体),直到现在我还在使用乳胶中的tikz包。使用
\coordinate
\draw
函数,我成功地为这些模型生成了精确的模具

现在,我不再制作多面体,而是尝试仅使用tikz向其添加花卉图案,因为我不擅长素描

这就是将jpg图像(带有花卉图案)导入到使用tikz绘制的三角形中,以便为多面体制作模板,如:

我知道如何在latex中导入图形,以及如何使用tikz制作几何图案,但不知道如何将jpg文件“裁剪”为三角形或任何其他坐标在tikz中指定的多边形

例如,下面是我用来制作一个包含10个三角形的曲面的代码

\documentclass{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz,ifthen}
\usetikzlibrary{calc,intersections,patterns}
\usepackage[paper=a4paper,dvips,top=.7cm,left=1.5cm,right=1.5cm, foot=1.2cm,bottom=1cm]{geometry}
\begin{document}
\pagestyle{empty}

\begin{tikzpicture}[scale=0.95,thin,rotate=0]
    \coordinate (O) at (0cm,0cm);

    \coordinate (A) at ($(O) + (36:3cm)$);
    \coordinate (B) at ($(A) + (-36:3cm)$);
    \coordinate (C) at ($(O) + (-36:3cm)$);

    \coordinate (X) at ($(O) + (4.78mm,1.56mm)$);
    \coordinate (Y) at ($(A) + (0mm,-1.9mm)$);
    \coordinate (Z) at ($(B) + (-4.78mm,1.56mm)$);

    \coordinate (X1) at ($(O) + (4.78mm,-1.56mm)$);
    \coordinate (Y1) at ($(O) + (-36:3cm) + (0mm,1.9mm)$);
    \coordinate (Z1) at ($(B) + (-4.78mm,-1.56mm)$);

    \foreach \i in {0,72,...,360}{
    \draw[gray, thin] let \p0=(O), \p1=(A), \p2=(B), \p3=(C) in
        [rotate around={\i:(O)}] (\p2)--(\p1)--(\p0)--(\p2)--(\p3);
    \draw[gray,thin,dashed] let \p1=(X), \p2=(Y), \p3=(Z) in
        [rotate around={\i:(O)}] (\p1)--(\p2)--(\p3)--cycle;
    \draw[gray,thin,dashed] let \p1=(X1), \p2=(Y1), \p3=(Z1) in
        [rotate around={\i:(O)}] (\p1)--(\p2)--(\p3)--cycle;      

    }

    \foreach \density in {20,30,...,160}{
    \foreach \i in {0,72,...,360}{
    \draw[fill=Magenta!\density] let \p1=(X), \p2=(Y), \p3=(Z) in
        [rotate around={\i:(O)}] (\p1)--(\p2)--(\p3)--cycle;
    }
     \path
             (X) coordinate (X1)
          -- (Y) coordinate[pos=.15](X)
          -- (Z) coordinate[pos=.15](Y)
          -- (X1) coordinate[pos=.15](Z);
   }      

\end{tikzpicture}
\end{document}
这是它生成的图像:

问题是图像中的图案也是由tex生成的,我想要的是任何花/非花图案(我选择)都可以在三角形内裁剪(三角形位于tex图中的某个特定位置)

任何帮助都将不胜感激


谢谢。

阅读的第1062-1072页,我编写了以下测试代码:

\documentclass[tikz,border=2mm]{standalone}
\开始{document}
\开始{tikzpicture}
\filldraw[红色](0,0)矩形(4,2);
\pgftext{\pgfimage[interpolate=true,width=1cm,height=1cm]{sample}
\pgftext[at=\pgfpoint{28mm}{0.8cm},左,底]{\pgfimage[interpolate=true,width=1cm,height=1cm]{sample}
\结束{tikzpicture}
\结束{document}
在我保存了带有上述代码的
.tex
文件的同一文件夹中,我还保存为
sample.png
。以下是编译的tex输出的屏幕截图:

它显示了使用命令
\pgftext
\pgfpoint
定位png图形的效果,这些命令有或没有属性
28mm
0.8cm

请在评论中添加您的反馈,以便我们可以更深入地观察。此外,将您的代码添加到问题中将有助于更加精确


附录

下面是我如何将上面代码中的想法应用到您添加到问题中的代码:

\documentclass{article}
\usepackage[usenames,dvipsnames]{xcolor}
\使用包{tikz,ifthen}
\usetikzlibrary{calc,cross,patterns}
\使用包装[paper=a4paper,DVIP,顶部=0.7cm,左侧=1.5cm,右侧=1.5cm,底部=1cm]{geometry}
\开始{document}
\页面样式{empty}
\开始{tikzpicture}[scale=0.95,thin,rotate=0]
\坐标(O)在(0厘米,0厘米);
\坐标(A)在($(O)+(36:3cm)$)处;
\坐标(B)在($(A)+(-36:3cm)$)处;
\坐标(C)在($(O)+(-36:3cm)$)处;
\坐标(X)在($(O)+(4.78毫米,1.56毫米)$)处;
\坐标(Y)在($(A)+(0mm,-1.9mm)$)处;
\坐标(Z)在($(B)+(-4.78毫米,1.56毫米)$)处;
\坐标(X1)在($(O)+(4.78毫米,-1.56毫米)$)处;
\坐标(Y1)在($(O)+(-36:3cm)+(0mm,1.9mm)$)处;
\坐标(Z1)在($(B)+(-4.78mm,-1.56mm)$)处;
\foreach\i在{0,72,…,360}{
\画[gray,thin]让\p0=(O),\p1=(A),\p2=(B),\p3=(C)在
[旋转={\i:(O)}](\p2)--(\p1)--(\p0)--(\p2)--(\p3);
\绘制[灰色,细,虚线]让\p1=(X),\p2=(Y),\p3=(Z)沿
[旋转={\i:(O)}](\p1)--(\p2)--(\p3)--循环;
\绘制[灰色,细,虚线]让\p1=(X1),\p2=(Y1),\p3=(Z1)在
[旋转={\i:(O)}](\p1)--(\p2)--(\p3)--循环;
}
\foreach \在{20,30,…,160}中的密度{
\路径
(十) 坐标(X1)
--(Y)坐标[pos=.15](X)
--(Z)坐标[pos=.15](Y)
--(X1)坐标[pos=.15](Z);
}
%包括来自外部文件的图形:
\foreach\i在{0,72,…,360}{
\pgftext[at=\pgfpoint{2cm*cos(\i)}{2cm*sin(\i)},左,基,旋转=\i]
{\pgfimage[interpolate=true,width=1cm,height=1cm]{sample}
}
\结束{tikzpicture}
\结束{document}
为了包含外部文件中的图形,我选择了一个
\foreach
循环,但只是为了使用五次相同的图像。关键是这条线:

\pgftext[at=\pgfpoint{2cm*cos(\i)}{2cm*sin(\i)},左,底,旋转=\i]
{\pgfimage[interpolate=true,width=1cm,height=1cm]{sample}
应允许您仅使用属性
2cm*cos(\i)
2cm*sin(\i)
left
base
rotate=\i
定位外部图形

您可以避免使用
\foreach
循环并使用一个

\pgftext[at=\pgfpoint…]{\pgfimage[…]{filename}
对于每个外部文件。如果您可以为三角形图形生成透明背景图像,您可能会喜欢这个解决方案

矿山产量:


您好,您能告诉我如何将某个物体裁剪成指定坐标的三角形吗?非常感谢:-)使用您告诉我的pgfimage和pgftext,我可以几乎准确地定位它。仍然存在一些问题:(i)三角形中存在空白,并且(ii)三角形不以原点开始。你能提供一些见解吗?如果我理解你的意思,我把代码放在这里@chyle,(i)我的答案可能只适用于你的三角形是
png
s或其他具有transaprent背景的扩展,(ii)请确保这是否可以通过使用属性
base
left
来解决。