我正在尝试绘制集合论累积层次结构的初始部分。我生成了以下 MWE:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[thick, scale=2.0]
\draw[ultra thick] (0,0) -- (1,2);
\draw[ultra thick] (0,0) -- (-1,2);
\foreach \y in {.3, .6,...,2}
\draw (-1,\y) -- (1,\y);
\end{tikzpicture}
\end{document}
生成了如下图片:
水平线的垂直间距是正确的,但是我该如何缩短它们以便它们结束于线V
而不是延伸到线之外?
编辑:接受的答案完美地回答了提出的问题。但是,cfr 的答案提供了更通用的解决方案,因此可能更受欢迎。
答案1
解决方案是解两个线性方程。
\documentclass[border=6pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[thick, scale=2.0, auto]
\draw[ultra thick] (0,0) -- (1,2);
\draw[ultra thick] (0,0) -- (-1,2);
\foreach \y in {.3, .6,...,2}
\draw (-1/2*\y,\y) -- (1/2*\y,\y);
\end{tikzpicture}
\end{document}
答案2
严格来说,这并没有回答问题,因为它不在循环内起作用,而是作为循环的约束。但是,效果是一样的。
您可以使用\clip
将线条剪裁到所需区域,而不必担心指定它们应该有多长。尽管在这种情况下确定它们应该有多长相对简单,但情况并非总是如此。因此,剪裁是一种普遍有用的技术,可以应用于更复杂的情况。
\documentclass[margin=10pt,tikz,multi]{standalone}
\begin{document}
\begin{tikzpicture}[thick, scale=2.0]
\draw[ultra thick] (-1,2) -- (0,0) -- (1,2);
\clip (-1,2) -- (0,0) -- (1,2) -- cycle;
\foreach \y in {.3, .6,...,2} \draw (-1,\y) -- (1,\y);
\end{tikzpicture}
\end{document}