用水平线填充形状

用水平线填充形状

我想画一个三角形,里面有另一个形状,如下所示:

\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}

在此处输入图片描述

相关内容