使用 pgf 交叉口包来处理路径

使用 pgf 交叉口包来处理路径

我对 PGF 3.0 中路径交叉点包的使用存在疑问:

就我的情况而言,如果交点数 >=1,则算法可以正常工作,但如果没有交点,则算法就无法正常工作。然后算法将原点标记为交点。

请参阅 PGF 3.0.1a 手册第 982 页的示例。(如果将矩形完全放在椭圆内,则会出现无交点的情况,并且代码会标记原点。)

我如何通过代码捕捉不相交的情况以避免这种情况?

我的宏

\def\mgthenumberofpathintersections{
\path [name path=ccp1cc]\myfirstpath;
\path [name path=ccp2cc]\mysecondpath;
\path [execute at begin node={\global\let\t=\t},
name intersections = {of = ccp1cc and ccp2cc,total=\t}];
}

当两条路径相交时,它会给出正确的值(即两条路径之间的交点数),如 中存储的一样,但是当没有交点时,\t似乎没有定义。如何自动识别没有交点的情况?\t

肯特·霍林(挪威)

答案1

这不会做任何事情,因为路径中\global\let没有定义。它已经在当前范围内定义,因此您可以完全删除它。nodedraw

您还可以检查交点是否存在(如果有一个或多个)。假设我name=myint在选项中也使用了键name intersection

\csname pgfutil@ifundefined\endcsname{pgf@sh@ns@myint-1}{True statement}{False statement}

您也可以检查是否存在,\t但我还没有测试它是否已经定义。

这是一个应用程序:绘制以半圆结尾的箭头

相关内容