我使用 tikz 绘制了一幅图,其代码如下所示:
\begin{tikzpicture}
\draw [rounded corners=10pt] (0,0) rectangle (4,2);
\draw (-3,1) -- (0,1) node [near start, above]{incoming communication};
\draw (2,3) -- (2,2) node [near start,left]{ input};
\draw (2,-1.5) -- (2,0) node [midway, left] {subroutine output};
\draw (1, 1.3) -- (3.5, 1.3) node [midway, above] {identity};
\draw (1, 0.5) -- (3.5, 0.5) node [midway, above] {sec. param.};
\end{tikzpicture}
输出如下:
矩形内的文本是否可以加下划线,并且线的长度与文本一样长(就像简单的下划线文本)?
是否有可能让每条线都通向矩形,就像一张负片(胶卷)一样。我可以想象,一些彼此分开的厚边框矩形可以完成负片的工作。是否有可能缩放负片图片并使用图案作为线条?或者我必须绘制这些矩形并将它们粘在一起?:D
答案1
要创建下划线文本,只需使用ulem
包:
\documentclass{article}
\usepackage{ulem,tikz}
\begin{document}
\tikz
{
\node at (0,0.5) {\uline{some underlined text}};
\node at (0,0) {\uline{a second line}};
}
\end{document}
要创建胶片效果,您可以使用装饰。请参阅 TikZ 手册 (v2.10) 第 72 章,了解如何定义自己的装饰(装饰的使用在第 21 章中描述)。以下内容可以帮助您入门(对于弯曲的路径或有边缘的路径,效果不太好):
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations}
\begin{document}
\pgfdeclaredecoration{film}{initial}
{
\state{initial}[width=10pt]
{
\fill (0,-5pt) rectangle (10.2pt,5pt);
\fill[white,rounded corners=1pt] (2pt,-4pt) rectangle (8pt,4pt);
}
\state{final}
{
\begin{scope}
\clip (0,-5pt) rectangle (\pgfdecoratedremainingdistance,5pt);
\fill (0,-5pt) rectangle (10pt,5pt);
\fill[white,rounded corners=1pt] (2pt,-4pt) rectangle (8pt,4pt);
\end{scope}
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}
}
\tikz[decoration=film]
{
\draw [decorate] (0,0) -- (3,0);
}
\end{document}