
Posso ter descoberto um bug no MetaPost e no MetaFont, mas antes de relatá-lo, gostaria de ter certeza de que realmente é um bug.
De um ponto de vista intuitivo, eu esperaria que, se dois caminhos tivessem um ponto de intersecção, então deveria haver uma interseção de um desses caminhos e o inverso do outro caminho.
No entanto, o seguinte programa MetaPost/MetaFont mostra MetaPost/MetaFont discorda.
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
Estou esquecendo de algo?
Responder1
Para que conste, Jacko (não sei se ele escreveu para você) construiu um exemplo mais simples a partir do seu original, e planejamos pedir a Knuth para analisar o problema na próxima vez que ele analisar os relatórios de bugs acumulados (no próximo ano). Não temos resposta para a pergunta real :(. --best, karl (em tug dot org).