节点定位的概述?

节点定位的概述?

我制作 tikz 图片已经有一段时间了,似乎有很多不同的方法可以在图表中定位节点。绝对坐标、东/西、左/右、$ $ 东西、最小距离……虽然我可以在网上找到足够的信息来让一些东西工作,但我无法看到全局。有人能解释一下所有这些不同的节点定位方法是如何协同工作的,以及计算机实际上是如何确定节点应该去哪里的吗?

答案1

您需要区分几件事:

  1. 部分at (<somewhere)(或作为关键词:)at={(<somewhere>)}

    可以<somewhere>是 TikZ 允许的任何坐标规范。

    这可能是一个明确的坐标,例如

    • (1, 2)
    • (30: 4)或者
    • <another node>.<with an anchor>

    这也可能是一个隐式坐标,例如

    • (xyz cs: x=1, y=2)
    • (xyz polar cs: angle=30, radius=4)或者
    • (node cs: name=<another node>, anchor=<with an anchor>)

    坐标系的概念及其版本(显式与隐式)在 13.2 节“坐标系”中进行了解释。第 123 页及后续页。PGF 手册

    at部分也可以是任意计算,calc$…$概念在第 13.5 节“坐标计算”中进行了解释。第 134 页及后续页。PGF 手册

    此外,您还可以在坐标规范的开头给出用于转换指定坐标的选项,通常这些选项是诸如scaleshiftxscale。这些选项也可以在路径或范围上给出。


    但这与节点没有特别的关系,因为路径上的每个坐标都可以用上述方式之一给出。

    如果节点没有指定at部分,则使用路径上的当前位置(即路径起点的原点)。

    因此,以下两条路径的作用相同:

    \path ( 3, 2) coordinate (a)
        + ( 1, 0) coordinate (b)
        + ( 0, 1) coordinate (c)
        + (-1, 0) coordinate (d)
        + ( 0,-1) coordinate (e);
    
    \coordinate (a) at   (3, 2)
     coordinate (b) at + (right:1)
     coordinate (c) at + (   up:1)
     coordinate (d) at + ( left:1)
     coordinate (e) at + ( down:1);
    
  2. 选项anchor=<anchor>(默认值center:)。

    这指定了节点本身的一个点,该点应放置在 处at

    above left和等选项right(以下称为<somewhere>键)在内部设置锚点(above left集合anchor=south eastright集合anchor=west)。如果使用此选项()指定长度,above left=1cm则会添加该方向的变换。在我们的示例中,这意味着.south east节点的锚点位于距离at方向above left(135°)零件一厘米的位置。

  3. 选项<somewhere> of=<another node without an anchor>(已弃用)。

    此键只是将<somewhere>键与at部分组合在一起。您也可以写:

    at=(<another node without an anchor>),% the `.center` anchor is used anyway
    <somewhere>=<node distance>
    

    其中<node distance>是键设置的节点距离node distance

    他们还将锚点设置为,.center当然,你可以改变它,如果你只是使用anchor按键<somewhere> of

  4. <somewhere>通过库增强/改进的键(positioning如果您使用“节点”图,它实际上应该是一个默认库)。

    如果值包含文本of,就会发生一些神奇的事情(否则我认为它只是一个普通的<somewhere>=<dimension>键值对)。

    我相信魔法已经解释过了我的另一个答案。总结一下:at设置了部分(如果给出了无锚节点名,则可能用锚点指定),设置anchor了(center如果on grid设置了选项,则始终为),还应用了转换(这取决于键的内容node distance(有或没有and)和实际方向(“ <somewhere>”))。

  5. 钥匙pos,又一个神奇的东西。

    如果pos在节点上使用键,则节点将沿着路径(路径的一部分)定位。这已在 16.8 节“将节点明确放置在直线或曲线上”中进行了解释第 190 页及后续页。PGF 手册

    在同一节中,解释了相关的键autoswap以及和sloped,并列出了键allow upside down的快捷方式。pos

    第 16.9 节“隐式地将节点放置在直线或曲线上”第 193 页及以上。解释一下如果在路径运算符的目标之前使用节点,这一切将如何发挥作用。

相关内容