考虑一下这个MEW,
\nonstopmode
\documentclass{article}
\usepackage{tikz,amsmath}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw [gray!10](-0.2, -0.2) grid[step=.25] (3.2,3.2) ;
\draw [gray!25](-0.2, -0.2) grid[step=.5] (3.2,3.2) ;
\path
(0, 3) node[left] {$y$}
(3, 0) node[below] {$x$} ;
\draw [-latex](-.2, 0) -- (3,0);
\draw [-latex](0, -.2) -- (0,3);
\draw [thick, cyan!50!black, -latex]
(0,0) node [coordinate](origin){}
--
(60:2.5) node [coordinate](pa){}
node [above, black]{$p_a$}
(origin)
--
(30:2.5) node [coordinate](pb){}
node [above, black]{$p_b$};
\newdimen\pax
\newdimen\pay
\pgfextractx{\pax}{(pa)}
\pgfextracty{\pay}{(pa)}
\draw [yellow!75!black](pa) -- (\pax, 0);
\draw [yellow!75!black](pa) -- (0, \pay);
\draw [magenta](pb) -- (\pax, 0);
\draw [magenta](pb) -- (0, \pay);
\end{tikzpicture}
\end{document}
生成了下面的图片:
在 处\pgfextractx{\pax}{(pa)}
,我尝试提取节点坐标的 x 分量(pa)
(与 y 分量相同),并尝试用黄线绘制与其各自轴的垂直线。但是它pgfextractx
给出了节点坐标的 x/y 分量(pb)
,我用洋红色线条绘制了它。
如何使用 从节点坐标中提取正确的 x/y 值(pa)
?\pgfextractx
我只查看了pgfmanual.pdf
,没有提供很多 的例子\pgfextracttx
。
答案1
您处于 PGF 的基本层,它不会像前端层(又名 Ti钾Z) 确实如此。特别是,使用括号表示坐标的语法在这里不起作用。因此,您需要使用\pgfpointanchor{pa}{center}
而不是(pa)
:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\newdimen\pax
\newdimen\pay
\begin{document}
\begin{tikzpicture}
\draw[gray!10] (-0.2,-0.2) grid[step=.25] (3.2,3.2);
\draw[gray!25] (-0.2,-0.2) grid[step=.5] (3.2,3.2);
\path
(0,3) node[left] {$y$}
(3,0) node[below] {$x$} ;
\draw[-latex] (-.2,0) -- (3,0);
\draw[-latex] (0,-.2) -- (0,3);
\draw[thick, cyan!50!black, -latex]
(0,0) node[coordinate] (origin) {}
--
(60:2.5) node[coordinate] (pa) {}
node[above, black] {$p_a$}
(origin)
--
(30:2.5) node[coordinate] (pb) {}
node[above, black] {$p_b$};
\pgfextractx{\pax}{\pgfpointanchor{pa}{center}}
\pgfextracty{\pay}{\pgfpointanchor{pa}{center}}
\draw[yellow!75!black] (pa) -- (\pax,0);
\draw[yellow!75!black] (pa) -- (0,\pay);
\draw[magenta] (pb) -- (\pax,0);
\draw[magenta] (pb) -- (0,\pay);
\end{tikzpicture}
\end{document}