我对 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
没有定义。它已经在当前范围内定义,因此您可以完全删除它。node
draw
您还可以检查交点是否存在(如果有一个或多个)。假设我name=myint
在选项中也使用了键name intersection
:
\csname pgfutil@ifundefined\endcsname{pgf@sh@ns@myint-1}{True statement}{False statement}
您也可以检查是否存在,\t
但我还没有测试它是否已经定义。
这是一个应用程序:绘制以半圆结尾的箭头