如何使用 tikz 写入偏见?

如何使用 tikz 写入偏见?

您好,我希望在尊重文本初始方向的图像上书写。

如您所见,字母的初始字体是垂直的,但它们遵循物体的方向。

通过使用倾斜,我可以沿着路径书写,但字母会倾斜。

怎么做?

在此处输入图片描述

答案1

使用yslanttransform shape

\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{calc}  % for the middle of a segment (only for the demo code)
\usepackage{graphicx}

\begin{document}

\begin{tikzpicture}[yslant=0.5]
\coordinate (A) at (0,0);
\coordinate (B) at (5,3);

\draw (A) -- (A-|B)
      node[midway, transform shape, above] {The quick brown fox}
      node[midway, transform shape, below, text width=5em, align=center]
        {jumped over the lazy dog.}
      -- (B) node[midway, transform shape, right] {$Ax = B$}
      -- (A|-B) -- cycle;

\node[transform shape] at ($(A)!0.5!(B)$) {\includegraphics[width=2cm]
  {example-image-duck}};
\end{tikzpicture}

\end{document}

在此处输入图片描述

默认情况下,节点内容不受转换的影响(如yslant=0.5这里定义的转换)。这是transform shape使转换应用于节点内容的选项。当然,如果你想要transform shape应用于所有节点,你可以用以下方式开始图片:

\begin{tikzpicture}[yslant=0.5, nodes={transform shape}]

为了进行更细粒度的控制,您可以使用scope环境,如下所示:

\begin{scope}[nodes={transform shape}]
  \node at ($(A)!0.5!(B)$) {\includegraphics[width=2cm] {example-image-duck}};
\end{scope}

如果我们使用它并且不应用于transform shape该图片的任何其他节点,则输出将变为:

在此处输入图片描述

答案2

您可以使用tikz3d库,请参阅pgf手册 v3.1.5b第40条

例如

\documentclass[tikz]{standalone}
\usetikzlibrary{3d}
\begin{document}
\begin{tikzpicture}[]
\draw[->] (0,0,0) -- (1,0,0);
\draw[->] (0,0,0) -- (0,1,0);
\draw[->] (0,0,0) -- (0,0,1);

\begin{scope}[canvas is xy plane at z=0.5,transform shape]
    \node (0,0) {S};
\end{scope} 
\begin{scope}[canvas is xz plane at y=0.5,transform shape]
    \node (0,0) {S};
\end{scope} 
\begin{scope}[canvas is yz plane at x=0.5,transform shape]
    \node (0,0) {S};
\end{scope} 
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容