如何使用 Tikz 在给定一组约束的情况下放置节点?

如何使用 Tikz 在给定一组约束的情况下放置节点?

假设我有 2 个节点。节点 1 放置在任意位置,节点 2 放置在节点 1 的右侧。tikz 是否会解决一组约束来解决这个问题?显然,它定义不明确,因为 y 轴上的任何位置都会满足约束。

但是,如果我有 5 个节点

节点 1 位于顶部。节点 2 位于 1 的左下方。节点 3 位于 2 的下方。节点 4 位于 1 的右下方。节点 5 位于节点 3 的右侧和节点 4 的左侧。

节点 5 位于 y 轴的什么位置?我可以让节点 4 和 5 都位于与节点 3 相同的 y 级别吗?

用??? 编码表示未知参数。

\node (1) {1};
\node[below left of=1] (2) {2};
\node[below of=2] (3) {3};
\node[below right of 1, ??? and right of 3 ???] (4) {4};
\node[??? right of (3) and left of (4) ???] (5) {5};

另外,tikz 是否知道增加节点 2 和 4 之间的 x 间距,因为我将节点 5 放在它们之间?

答案1

我不确定位置规范,但这可以通过positioning库来完成

\documentclass[tikz, border=1mm]{standalone}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
\node[draw] (1) {1};
\node[draw, below left= of 1] (2) {2};
\node[draw, below=of 2] (3) {3};
\node[draw, below right= of 1] (4) {4};
\node[draw, right=of 3] (5) {5};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容