我可能发现了 MetaPost 和 MetaFont 中的一个错误,但在报告之前,我想确保它确实是一个错误。
从直观的角度来看,我期望如果两条路径有一个交点,那么其中一条路径应该与另一条路径的反向相交。
但是,以下 MetaPost/MetaFont 程序显示 MetaPost/MetaFont 有所不同。
path pa, pb; pair ta, tb;
pa = (6.51782,19.85922)..controls (1.38812,14.72952) and (-1.67604,7.1873)
..(-1.67604,-0.64035)..controls (-0.65317,-0.04979) and (0.36969,0.54076)
..(1.39256,1.13132)..controls (1.39256,8.95897) and (4.8107,15.6466)
..cycle;
pb = (-1.67339,-0.64497)..controls (-1.57977,-0.80708) and (-1.48618,-0.96921)
..(-1.39256,-1.13132)..controls (-1.39256,-0.91154) and (-1.39026,-0.69205)
..(-1.38567,-0.47285);
ta = pb intersectiontimes pa;
tb = (reverse pb) intersectiontimes pa;
show ta; % (1.99997,1.09459), so there's an intersection
show tb; % (-1,-1), so there's no intersection
end
我是否遗漏了什么?
答案1
顺便说一下,Jacko(我不知道他是否写信给你)根据你的原始代码构建了一个更简单的示例,我们计划在 Knuth 下次查看累积的错误报告时(明年)让他查看这个问题。我们无法回答实际问题 :(。——祝你好运,karl(at tug dot org)。