tikz - 梯形节点 - 固定角度和高度,可调宽度

tikz - 梯形节点 - 固定角度和高度,可调宽度

使用 TikZ,我想绘制梯形节点,所有节点都具有固定的高度和角度,但宽度各不相同。我找不到任何可以满足我要求的参数组合。具体来说,使用trapezium stretches=false,角度正确,但宽度大得离谱。使用trapezium stretches=truetrapezium stretches body=true,宽度正确,但角度全都错误。

类似的问题似乎已在绘制具有固定角度、宽度和高度的平行四边形?,但我没有看到回答在那里,只谈论为什么显而易见的事情不起作用,坦率地说,我不在乎,我只对如何改变感兴趣,以便它工作。(不过,需要澄清一点:这些梯形条需要是节点,这样它们才能在更大的文档中被处理,用于标记等。另外,我正在设置节点的大小,\rule因为当我尝试仅使用时,minimum width我得到了除以零的错误。看来节点trapezium不能为空。)

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usepackage[active,pdftex,tightpage]{preview}
\PreviewEnvironment[]{tikzpicture}
\begin{document}
\begin{tikzpicture}[x=5mm,y=5mm,every node/.style={
  trapezium, trapezium angle=67.5, draw,
  inner sep=0pt, outer sep=0pt,
  minimum height=1.81mm, minimum width=0pt
}]
\node [] at (0,9) {\rule{1pt}{0.1pt}};
\node [] at (0,8) {\rule{5pt}{0.1pt}};
\node [] at (0,7) {\rule{10pt}{0.1pt}};
\node [trapezium stretches] at (0,6) {\rule{1pt}{0.1pt}};
\node [trapezium stretches] at (0,5) {\rule{5pt}{0.1pt}};
\node [trapezium stretches] at (0,4) {\rule{10pt}{0.1pt}};
\node [trapezium stretches body] at (0,3) {\rule{1pt}{0.1pt}};
\node [trapezium stretches body] at (0,2) {\rule{5pt}{0.1pt}};
\node [trapezium stretches body] at (0,1) {\rule{10pt}{0.1pt}};
\end{tikzpicture}
\end{document}

其结果为:

上面的 tikz 代码渲染,演示了宽度/角度的问题

答案1

一种可能性是使用它text width来控制宽度;使用一个新的 mytrap 样式的一个参数,您可以使用如下样式:

\node [mytrap=<width>] at (<position>) {};

完整示例:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
%\usepackage[active,pdftex,tightpage]{preview}
%\PreviewEnvironment[]{tikzpicture}
\begin{document}
\begin{tikzpicture}[x=5mm,y=5mm,
  mytrap/.style={
  trapezium, trapezium angle=67.5, draw,inner xsep=0pt,outer sep=0pt,
  minimum height=1.81mm, text width=#1
}]
\foreach \ancho [count=\xi] in {5,10,...,100}  
  \node [mytrap=\ancho pt] at (0,-\xi) {};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

可能是这样的:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usepackage[active,pdftex,tightpage]{preview}
\PreviewEnvironment[]{tikzpicture}
\begin{document}
\begin{tikzpicture}[x=5mm,y=5mm,every node/.style={
  trapezium, trapezium angle=67.5, draw,
  inner ysep=5pt, outer sep=0pt,
  minimum height=1.81mm, minimum width=0pt
}]
\node[inner xsep=6pt] at (0,5){};
\node[inner xsep=5pt] at (0,4){};
\node[inner xsep=4pt] at (0,3){};
\node[inner xsep=3pt] at (2,5){};
\node[inner xsep=2pt] at (2,4){};
\node[inner xsep=1pt] at (2,3){};
\end{tikzpicture}
\end{document}

在此处输入图片描述

参见 TikZ 手册第 422 页(还有更多代码块可以删除,我把它们留在那里是因为我不确定您是否真的需要它们用于其他目的)

相关内容