需要在页面内倾斜此图像,使其成为一条透视路径,并带有倾斜的文本。从页面出来的路径

需要在页面内倾斜此图像,使其成为一条透视路径,并带有倾斜的文本。从页面出来的路径
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,decorations,patterns,positioning,automata,shadows,fit,shapes,calc,decorations.markings,backgrounds,scopes}

\newcommand{\xyz}{
\begin{tikzpicture}[scale=0.78]
\clip plot[scale=1.8,smooth cycle,clip]coordinates{(0.91,6.44)(0.69,6.21)(0.56,5.89)(0.46,5.58)(0.41,5.25)(0.44,4.96)(0.62,4.67)(0.93,4.42)(1.35,4.23)(1.75,4.17)(2.16,4.21)(2.66,4.33)(3.02,4.5)(3.39,4.67)(3.72,4.85)(4.03,5)(4.37,5.19)(4.78,5.42)(5.14,5.58)(5.49,5.75)(5.89,5.83)(6.34,5.85)(6.63,5.73)(6.8,5.46)(6.84,5.08)(6.74,4.79)(6.53,4.58)(6.26,4.4)(5.91,4.23)(5.53,4.13)(5.22,4.08)(4.83,4.02)(4.28,4)(3.89,3.96)(3.56,3.96)(3.14,3.9)(2.77,3.84)(2.39,3.79)(2,3.69)(1.64,3.52)(1.29,3.38)(0.98,3.15)(0.71,2.88)(0.48,2.55)(0.35,2.21)(0.27,1.8)(0.29,1.4)(0.35,1.09)(0.48,0.8)(0.75,0.55)(1.08,0.38)(1.43,0.24)(1.97,0.24)(2.45,0.32)(2.97,0.53)(3.45,0.76)(4.03,1.09)(4.37,1.28)(4.76,1.44)(5.14,1.65)(5.53,1.82)(5.91,1.92)(6.24,2.03)(6.57,1.8)(6.47,1.15)(7.32,0.82)(7.47,1.36)(7.53,1.88)(7.38,2.3)(7.03,2.65)(6.53,2.86)(6.18,2.9)(5.78,2.88)(5.37,2.77)(4.97,2.61)(4.66,2.48)(4.33,2.32)(4.01,2.15)(3.68,1.96)(3.41,1.8)(3.1,1.65)(2.74,1.46)(2.45,1.34)(2.02,1.21)(1.56,1.21)(1.29,1.38)(1.25,1.71)(1.33,2.13)(1.54,2.4)(1.79,2.57)(2.02,2.69)(2.33,2.77)(2.74,2.9)(3.18,2.94)(3.64,3)(4.12,3.02)(4.51,3.07)(4.97,3.11)(5.28,3.15)(5.64,3.19)(6.01,3.25)(6.36,3.4)(6.68,3.54)(7.09,3.81)(7.34,4.02)(7.59,4.4)(7.78,4.85)(7.8,5.31)(7.7,5.81)(7.53,6.17)(7.28,6.46)(6.93,6.66)(6.55,6.81)(6.09,6.85)(5.66,6.79)(5.26,6.69)(4.85,6.54)(4.43,6.33)(4.08,6.14)(3.7,5.94)(3.33,5.73)(2.89,5.5)(2.5,5.33)(2.16,5.23)(1.77,5.15)(1.45,5.13)(1.37,5.44)(1.52,5.73)(1.68,6.04)};

%Bricks
\def\mypath{(0.2,0.2)--(0.2,12.5)--(14,12.5)--(14,0.2)}
\fill [black!30] (0,0)--(7,7) \mypath;
\pattern[scale=2,pattern color=black!0,pattern=bricks] \mypath;
%Bricks

\node at (2.0,8.7){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{S}}}};
\node at (3.6,8.4){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{L}}}};
\node at (5.2,8.9){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{I}}}};
\node at (6.8,9.7){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{D}}}};
\node at (8.5,10.7){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{I}}}};
\node at (10.0,11.3){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{N}}}};
\node at (11.7,11.4){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{G}}}};

\node at (2.0,4.8){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{S}}}};
\node at (3.6,5.7){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{I}}}};
\node at (5.2,6.1){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{N}}}};
\node at (6.8,6.2){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{U}}}};
\node at (8.4,6.4){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{O}}}};
\node at (10.0,6.6){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{U}}}};
\node at (11.6,7.1){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{S}}}};

\node at (2.0,1.6){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{S}}}};
\node at (3.6,1.3){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{L}}}};
\node at (5.2,1.8){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{I}}}};
\node at (6.8,2.6){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{T}}}};
\node at (8.5,3.5){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{E}}}};
\node at (10.2,4.2){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{R}}}};
\node at (11.6,4.3){{\fontfamily{ugq}\fontsize{38}{42}\selectfont \color{black}{\textbf{Y}}}};
\end{tikzpicture}
}

\newcommand{\yslant}{0.5}
\newcommand{\xslant}{0.4}

\begin{document}
\xyz

\newpage
\begin{tikzpicture}[scale=0.5,every node/.style={minimum size=1cm},on grid]
\begin{scope}[
    yshift=0,
    every node/.append style={yslant=\yslant,xslant=\xslant},
    yslant=\yslant,xslant=\xslant
]       
    \node at (0,0) {\xyz};
\end{scope}
\end{tikzpicture}

\end{document}

答案1

tikz-3dplot例如,可以使用 3d 库和实现伪 3d 效果。

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d,patterns}
\begin{document}
\tdplotsetmaincoords{60}{20}
\begin{tikzpicture}[tdplot_main_coords,scale=0.78]
\begin{scope}[canvas is xy plane at z=0]
\clip plot[scale=1.8,smooth cycle,clip]coordinates{(0.91,6.44)(0.69,6.21)(0.56,5.89)(0.46,5.58)(0.41,5.25)(0.44,4.96)(0.62,4.67)(0.93,4.42)(1.35,4.23)(1.75,4.17)(2.16,4.21)(2.66,4.33)(3.02,4.5)(3.39,4.67)(3.72,4.85)(4.03,5)(4.37,5.19)(4.78,5.42)(5.14,5.58)(5.49,5.75)(5.89,5.83)(6.34,5.85)(6.63,5.73)(6.8,5.46)(6.84,5.08)(6.74,4.79)(6.53,4.58)(6.26,4.4)(5.91,4.23)(5.53,4.13)(5.22,4.08)(4.83,4.02)(4.28,4)(3.89,3.96)(3.56,3.96)(3.14,3.9)(2.77,3.84)(2.39,3.79)(2,3.69)(1.64,3.52)(1.29,3.38)(0.98,3.15)(0.71,2.88)(0.48,2.55)(0.35,2.21)(0.27,1.8)(0.29,1.4)(0.35,1.09)(0.48,0.8)(0.75,0.55)(1.08,0.38)(1.43,0.24)(1.97,0.24)(2.45,0.32)(2.97,0.53)(3.45,0.76)(4.03,1.09)(4.37,1.28)(4.76,1.44)(5.14,1.65)(5.53,1.82)(5.91,1.92)(6.24,2.03)(6.57,1.8)(6.47,1.15)(7.32,0.82)(7.47,1.36)(7.53,1.88)(7.38,2.3)(7.03,2.65)(6.53,2.86)(6.18,2.9)(5.78,2.88)(5.37,2.77)(4.97,2.61)(4.66,2.48)(4.33,2.32)(4.01,2.15)(3.68,1.96)(3.41,1.8)(3.1,1.65)(2.74,1.46)(2.45,1.34)(2.02,1.21)(1.56,1.21)(1.29,1.38)(1.25,1.71)(1.33,2.13)(1.54,2.4)(1.79,2.57)(2.02,2.69)(2.33,2.77)(2.74,2.9)(3.18,2.94)(3.64,3)(4.12,3.02)(4.51,3.07)(4.97,3.11)(5.28,3.15)(5.64,3.19)(6.01,3.25)(6.36,3.4)(6.68,3.54)(7.09,3.81)(7.34,4.02)(7.59,4.4)(7.78,4.85)(7.8,5.31)(7.7,5.81)(7.53,6.17)(7.28,6.46)(6.93,6.66)(6.55,6.81)(6.09,6.85)(5.66,6.79)(5.26,6.69)(4.85,6.54)(4.43,6.33)(4.08,6.14)(3.7,5.94)(3.33,5.73)(2.89,5.5)(2.5,5.33)(2.16,5.23)(1.77,5.15)(1.45,5.13)(1.37,5.44)(1.52,5.73)(1.68,6.04)};

%Bricks
\def\mypath{(0.2,0.2)--(0.2,12.5)--(14,12.5)--(14,0.2)}
\fill [black!30] (0,0)--(7,7) \mypath;
\pattern[pattern color=black!0,pattern=bricks] \mypath;
%Bricks
\foreach \X[count=\Y] in {(2.0,8.7),(3.6,8.4),(5.2,8.9),(6.8,9.7),(8.5,10.7),(10.0,11.3),(11.7,11.4),
(2.0,4.8),(3.6,5.7),(5.2,6.1),(6.8,6.2),(8.4,6.4),(10.0,6.6),(11.6,7.1),
(2.0,1.6),(3.6,1.3),(5.2,1.8),(6.8,2.6),(8.5,3.5),(10.2,4.2),(11.6,4.3)}
{\path \X coordinate (p\Y);}
\end{scope}
\begin{scope}[canvas is xz plane at y=0,transform shape]
\foreach \X [count=\Y] in
 {{S},{L},{I},{D},{I},{N},{G},{S},{I},{N},{U},{O},{U},{S},{S},{L},{I},{T},{E},{R},{Y}}
 {\node[anchor=south,font=\fontfamily{ugq}\fontsize{38}{42}\selectfont\bfseries] at (p\Y) {\X};}
\end{scope}
%%%%%%%%%%%
\end{tikzpicture}
\end{document}

在此处输入图片描述

然后您可以调整视角。

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d,patterns}
\begin{document}
\foreach \X in {0,10,...,360}
{\tdplotsetmaincoords{60+15*sin(\X)}{20+10*sin(\X)}
\begin{tikzpicture}[tdplot_main_coords,scale=0.78]
\path [tdplot_screen_coords,use as bounding box] (0,-3) rectangle (18,12);
\begin{scope}[canvas is xy plane at z=0]
\clip plot[scale=1.8,smooth cycle,clip]coordinates{(0.91,6.44)(0.69,6.21)(0.56,5.89)(0.46,5.58)(0.41,5.25)(0.44,4.96)(0.62,4.67)(0.93,4.42)(1.35,4.23)(1.75,4.17)(2.16,4.21)(2.66,4.33)(3.02,4.5)(3.39,4.67)(3.72,4.85)(4.03,5)(4.37,5.19)(4.78,5.42)(5.14,5.58)(5.49,5.75)(5.89,5.83)(6.34,5.85)(6.63,5.73)(6.8,5.46)(6.84,5.08)(6.74,4.79)(6.53,4.58)(6.26,4.4)(5.91,4.23)(5.53,4.13)(5.22,4.08)(4.83,4.02)(4.28,4)(3.89,3.96)(3.56,3.96)(3.14,3.9)(2.77,3.84)(2.39,3.79)(2,3.69)(1.64,3.52)(1.29,3.38)(0.98,3.15)(0.71,2.88)(0.48,2.55)(0.35,2.21)(0.27,1.8)(0.29,1.4)(0.35,1.09)(0.48,0.8)(0.75,0.55)(1.08,0.38)(1.43,0.24)(1.97,0.24)(2.45,0.32)(2.97,0.53)(3.45,0.76)(4.03,1.09)(4.37,1.28)(4.76,1.44)(5.14,1.65)(5.53,1.82)(5.91,1.92)(6.24,2.03)(6.57,1.8)(6.47,1.15)(7.32,0.82)(7.47,1.36)(7.53,1.88)(7.38,2.3)(7.03,2.65)(6.53,2.86)(6.18,2.9)(5.78,2.88)(5.37,2.77)(4.97,2.61)(4.66,2.48)(4.33,2.32)(4.01,2.15)(3.68,1.96)(3.41,1.8)(3.1,1.65)(2.74,1.46)(2.45,1.34)(2.02,1.21)(1.56,1.21)(1.29,1.38)(1.25,1.71)(1.33,2.13)(1.54,2.4)(1.79,2.57)(2.02,2.69)(2.33,2.77)(2.74,2.9)(3.18,2.94)(3.64,3)(4.12,3.02)(4.51,3.07)(4.97,3.11)(5.28,3.15)(5.64,3.19)(6.01,3.25)(6.36,3.4)(6.68,3.54)(7.09,3.81)(7.34,4.02)(7.59,4.4)(7.78,4.85)(7.8,5.31)(7.7,5.81)(7.53,6.17)(7.28,6.46)(6.93,6.66)(6.55,6.81)(6.09,6.85)(5.66,6.79)(5.26,6.69)(4.85,6.54)(4.43,6.33)(4.08,6.14)(3.7,5.94)(3.33,5.73)(2.89,5.5)(2.5,5.33)(2.16,5.23)(1.77,5.15)(1.45,5.13)(1.37,5.44)(1.52,5.73)(1.68,6.04)};

%Bricks
\def\mypath{(0.2,0.2)--(0.2,12.5)--(14,12.5)--(14,0.2)}
\fill [black!30] (0,0)--(7,7) \mypath;
\pattern[pattern color=black!0,pattern=bricks] \mypath;
%Bricks
\foreach \X[count=\Y] in {(2.0,8.7),(3.6,8.4),(5.2,8.9),(6.8,9.7),(8.5,10.7),(10.0,11.3),(11.7,11.4),
(2.0,4.8),(3.6,5.7),(5.2,6.1),(6.8,6.2),(8.4,6.4),(10.0,6.6),(11.6,7.1),
(2.0,1.6),(3.6,1.3),(5.2,1.8),(6.8,2.6),(8.5,3.5),(10.2,4.2),(11.6,4.3)}
{\path \X coordinate (p\Y);}
\end{scope}
\begin{scope}[canvas is xz plane at y=0,transform shape]
\foreach \X [count=\Y] in
 {{S},{L},{I},{D},{I},{N},{G},{S},{I},{N},{U},{O},{U},{S},{S},{L},{I},{T},{E},{R},{Y}}
 {\node[anchor=south,font=\fontfamily{ugq}\fontsize{38}{42}\selectfont\bfseries] at (p\Y) {\X};}
\end{scope}
%%%%%%%%%%%
\end{tikzpicture}}
\end{document}

在此处输入图片描述

正如我已经提到的,你的代码嵌套tikzpictures,这应该避免。正如您所看到的,图案没有被变换。可以找到可以变换的墙这里

相关内容