MetaPost/MetaFont における交差のセマンティクス

MetaPost/MetaFont における交差のセマンティクス

MetaPost と MetaFont にバグを発見したかもしれませんが、報告する前に、それが本当にバグであるかどうか確認したいと思います。

直感的な観点から言えば、2 つのパスに交差点がある場合、これらのパスの 1 つと他のパスの逆の交差点が存在するはずです。

ただし、次の 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)。

関連情報