为什么缺失的坐标被视为 1?

为什么缺失的坐标被视为 1?

为什么缺失的坐标被视为1(而不是0例如)?这是设计选择还是简单的巧合?

\documentclass[tikz,border=7pt]{standalone}
\begin{document}
  \begin{tikzpicture}
    \path[red]
        (0,0) node{(0,0)}
        (,0)  node{(1,0)}
        (0,)  node{(0,1)}
        (,)   node{(1,1)}
      ;
  \end{tikzpicture}
\end{document}

在此处输入图片描述

笔记:这个问题非常有用密码高尔夫;)

答案1

这是由于其\pgfpointxy{}{}工作原理。当 TikZ 遇到(...)它基本上会寻找典型的它是极坐标语法吗?它是坐标系点吗?等检查,然后假设它是一个常规点。在检查 3D(x,y,z)语法后,它会将其发送到其中一个@已填充的扫描点宏(\tikz@@@parse@regular如果我没记错的话)

但实际数字来自这一点

\def\pgfpointxy#1#2{%
  \pgfmathparse{#1}%  <============= This is \pgfmathparse{} in our example
  \let\pgftemp@x=\pgfmathresult%
  \pgfmathparse{#2}%
  \let\pgftemp@y=\pgfmathresult%
  \pgf@x=\pgftemp@x\pgf@xx% <================So this becomes ={\empty}{current xvec}
  \advance\pgf@x by \pgftemp@y\pgf@yx%
  \pgf@y=\pgftemp@x\pgf@xy%
  \advance\pgf@y by \pgftemp@y\pgf@yy}

长话短说,坐标语法被反复使用\pgfpointxy,条目成为当前 x,y 向量的标量因子。由于 TeX 维度寄存器缩放行为,没有因子被视为当前单位向量长度本身。

相关内容