我想画一个三角形,里面有另一个形状,如下所示:
\begin{tikzpicture}
\path[draw, ultra thick] (0,0) -- (5,5) -- (10,0)--cycle;
\path[draw, ultra thick] (3.5,0) -- (3.5,3.5) -- (8,2) -- (8,0);
\end{tikzpicture}
现在我想用水平线填充三角形内部的形状,并在中间添加标签。所以第一个问题是,我该如何画线?第二个问题是,我该如何让标签剪切线条,我的意思是像这样:-----A----- 只是不是虚线...
还有一个附加问题:)假设我知道所有三条边的长度,有没有更好的方法来绘制这个三角形?(底部的长度是 sqrt72...)
谢谢!
答案1
不使用库来用水平线填充三角形的基本方法是使用\foreach
三角形作为 ping 路径来绘制三角形内的线条clip
。对于标签,只需使用填充白色的普通节点即可。
\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path[draw, ultra thick] (0,0) --node[above,pos=.35,sloped]{4 cm}node[above,pos=.85,sloped]{2 cm} (5,5) -- (10,0)--cycle;
\path[draw, ultra thick] (3.5,0) -- (3.5,3.5) -- (8,2) -- (8,0);
\path[clip] (0,0) -- (5,5) -- (10,0)--cycle;
\foreach \y in{0,.2,...,5}
\draw (0,\y) -- (10,\y);
\node at (5,2)[fill=white]{A};
\end{tikzpicture}
\end{document}
您还可以patterns
按照@percusse 的建议使用该库,如下所示:
\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}
\path[draw, ultra thick,pattern=horizontal lines] (0,0) --node[above,pos=.35,sloped]{4 cm}node[above,pos=.85,sloped]{2 cm} (5,5) -- (10,0)--cycle;
\path[draw, ultra thick] (3.5,0) -- (3.5,3.5) -- (8,2) -- (8,0);
\node at (5,2)[fill=white]{A};
\end{tikzpicture}
\end{document}
输出略有不同(您仍然可以调整):
编辑:
我想我最初误解了这个问题,似乎三角形内的形状应该被填充。无论如何,这是修改后的代码:
\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}
\path[draw, ultra thick] (0,0) --node[above,pos=.35,sloped]{4 cm}node[above,pos=.85,sloped]{2 cm} (5,5) -- (10,0)--cycle;
\path[draw, ultra thick,pattern=horizontal lines] (3.5,0) -- (3.5,3.5) -- (8,2) -- (8,0);
\node at (5.75,1.5) [fill=white]{A};
\end{tikzpicture}
\end{document}