我需要用图像填充三角形节点,并以各种角度旋转它。我用图像填充节点的方法是基于这个,如果我的节点没有旋转或旋转 180 度,它工作得很好。但对于其他旋转角度,节点和图像不会同步旋转。我怀疑问题涉及锚点,我试过了anchor=center
,但没有效果。
梅威瑟:
\documentclass[margin=5pt]{standalone}
\usepackage{mwe}
\usepackage{tikz}
\usepgflibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}[
tile/.style={regular polygon,
regular polygon sides=3,
draw,
minimum width=5cm,
minimum height=5cm,
rotate=#1,
path picture={
\node at (path picture bounding box.center){
\includegraphics[width=5cm,angle=#1]{example-image-a}
};
}}
]
% node 1, not rotated
\node[tile={0}] at (0,0) {};
% node 2, rotated 180
\node[tile={180}] at (5,0) {};
% node 3, rotated 120
\node[tile={120}] at (0,-5) {};
% node 4, rotated 57
\node[tile={57}] at (5,-5) {};
\end{tikzpicture}
\end{document}
结果:
后续问题:如果节点和图像已经以不同的角度旋转,该怎么办?例如,如果我想用“正面朝上”的图像填充“倒置”三角形,那么我必须rotate=180
对节点使用,但angle=0
对图像使用。然后我想以这些角度作为起点旋转整个物体。
答案1
总是path picture bounding box
一个边缘水平或垂直的盒子,这解释了位移。因此,您需要随节点旋转的锚点。
\documentclass[margin=5pt]{standalone}
\usepackage{mwe}
\usepackage{tikz}
\usepgflibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}[
tile/.style={regular polygon,name=3gon,
regular polygon sides=3,
draw,
minimum width=5cm,
minimum height=5cm,
rotate=#1,
path picture={
\node at ([yshift=0.6cm]3gon.center){
\includegraphics[width=5cm,angle=#1]{example-image-a}
};
}}
]
% node 1, not rotated
\node[tile={0}] at (0,0) {};
% node 2, rotated 180
\node[tile={180}] at (5,0) {};
% node 3, rotated 120
\node[tile={120}] at (0,-5) {};
% node 4, rotated 57
\node[tile={57}] at (5,-5) {};
\end{tikzpicture}
\end{document}
如果您想赋予这些节点不同的名称,请使用别名。