Как нарисовать форму, похожую на файловые архивы?

Как нарисовать форму, похожую на файловые архивы?

Как нарисовать такую ​​фигуру с помощью TikZ?введите описание изображения здесь

решение1

введите описание изображения здесь

Раздел102.5.3 Команда для объявления новых фигурруководства pgf содержит пример объявления documentформы, похожей на ту, которую вы запросили. Добавление double copy shadowк этой форме дает вам желаемый результат.

Код (настройте параметры в соответствии с вашими потребностями):

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shadows}

\makeatletter
\pgfdeclareshape{document}{
\inheritsavedanchors[from=rectangle] % this is nearly a rectangle
\inheritanchorborder[from=rectangle]
\inheritanchor[from=rectangle]{center}
\inheritanchor[from=rectangle]{north}
\inheritanchor[from=rectangle]{south}
\inheritanchor[from=rectangle]{west}
\inheritanchor[from=rectangle]{east}
% ... and possibly more
\backgroundpath{% this is new
% store lower right in xa/ya and upper right in xb/yb
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
% compute corner of ‘‘flipped page’’
\pgf@xc=\pgf@xb \advance\pgf@xc by-7.5pt % this should be a parameter
\pgf@yc=\pgf@yb \advance\pgf@yc by-7.5pt
% construct main path
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathclose
% add little corner
\pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
}
}
\makeatother

\begin{document}

\begin{tikzpicture}

\node[
  shape=document,
  double copy shadow={
    shadow xshift=-0.5ex,
    shadow yshift=-0.5ex
  },
  draw,
  fill=white,
  line width=1pt,
  text width=1cm,
  minimum height=1.7cm
  ] {};
\end{tikzpicture}

\end{document}

Если это будет использоваться многократно, вы можете определить стиль, чтобы упростить код.

решение2

Вот одно из решений. Если вы хотите использовать его много раз, вы можете поместить его в pic.

\usetikzlibrary{shadings}
\usetikzlibrary{shadows}

\begin{tikzpicture}
  \foreach \i in {1,2,3} {
    \begin{scope}[shift={(.2*\i,.2*\i)}]
      \draw[bottom color=black!7, top color=white, drop shadow={shadow xshift=-.4ex}]
        (0,0) -- ++(3,0) -- ++(0,3)  -- ++(-1,1) -- ++(-2,0) -- cycle;
      \draw (3,3) -| (2,4);
    \end{scope}
  }
\end{tikzpicture}

введите описание изображения здесь

Связанный контент