建议在命令行输入texdoc tikz
找到有关的符号的详细说明
(point A) -| (point B)
指的是从A出发先水平再垂直方向连接坐标点B (point A) |- (point B)
指的是从A出发先垂直再水平方向连接坐标点B
这里的point可以是坐标形式 (2,4)
也可以是坐标点的名称 (S)
因为你前面已经定义了 \coordinate (S) at (2,2);
首先看你的第一个MWE:预定义了坐标点S(2,2)
\draw[red] (0,0) -- (0,0)-| (S);
\draw[blue] (0,0) -- (0,0) |- (S);
指的是从(0,0)出发,画红色直线到点(0,0),然后从(0,0)出发,先水平再垂直到(S),在脑海中想象,从(0,0)到(2,2)理应先向右再向上.同理,第二行代码从(0,0)画蓝色直线到点(0,0),之后先向上再向右,实际上符号|-
以及-|
是很形象和直观的.
P.S. 因此上面的代码中(0,0) -- (0,0)
并无实际意义,可删去--(0,0)
.
接下来看第二个MWE,其实是稍微有点tricky的,看下面的例子.
诚如lshort
中所言,此时指的是垂足模式
(0,0 -| S) 指 横坐标 为 S的横坐标_, 纵坐标为 _0 的点
(0,0 |- S) 指 纵坐标 为 S的纵坐标_,横坐标为 _0 的点
于是不难想象你得到的两条线.
但是上述表述诚如你所言,左边是一个坐标,右边是一个点,并不是规范的path (PointA) <curve-to> (PointB)表述形式,不建议使用.
关于显示坐标的问题,我不觉得上述的\path
想象坐标是很困难的事情,你可以通过\node at (<point>) {$text$}
来标注位置,不一定一定需要获得其坐标.
另一方面也可以使用pgfplots
宏包提供的\getlastxy{\x}{\y}
来获得当前坐标点的命令并保存到\x
和\y
中,再使用\node
输出,但是这样很繁琐,不如直接使用\node
输出.
问 `-|`运算符到底什么作用?