我是 pgf 新手,正在尝试创建自己的形状。由于在很多路径命令中我重复使用同一个点 ( \pgfpoint{\pgf@xb}{\pgf@ya}
),我想知道哪个点最适合存储该点,以便我可以从一个地方更改该点。
推荐的实现方法是什么?\pgf@registers
保存点后可以重复使用吗?是否有可以优化此操作的保存方法?也就是说,\pgfqpoint
似乎可以进行更简单的输入解析,是否有办法执行类似以下操作:
\savepoint{myName}{\pgfpoint{2cm+1pt}{3ex}}
\pgfpathlineto{\myname} %compute cost here equivalent to the cost of \pgfqpoint at most
\pgfpathlineto{\myname} %compute cost here equivalent to the cost of \pgfqpoint at most
保存点是否有效def
或者还有其他推荐的方法?
答案1
有一个内部命令\pgfextract@process
可以执行您想要的操作:
\makeatletter
\pgfextract@process\startpoint{\pgfpointorigin}
\pgfextract@process\endpoint{\pgfpointadd{\pgfpoint{10pt}{20pt}}%
{\pgfpoint{20pt}{0pt}}}
\show\startpoint
\show\endpoint
这将在日志文件中生成类似以下内容的内容:
> \startpoint=macro:
->\pgf@x =0.0pt\relax \pgf@y =0.0pt\relax .
l.7 \show\startpoint
> \endpoint=macro:
->\pgf@x =30.0pt\relax \pgf@y =20.0pt\relax .
l.8 \show\endpoint
\pgfextract@process
在组内处理其第二个参数TeX
,然后通过将和设为全局变量\pgf@x
而将其置于组外。然后,和\pgf@y
的值保存在作为第一个参数给出的宏名称中。\pgf@x
\pgf@y