具有终点交叉点的错误子路径

具有终点交叉点的错误子路径

对于交叉发布,我深表歉意。我在渐近线论坛上发布了同样的问题。

我正在尝试找出两个相交三角形的轮廓。我期望得到星形图形的轮廓。

我的代码如下

import geometry;
import math;
unitsize(1cm);

point a = (2.5,4);
point b = (0,0);
point c = (5,0);
triangle t1 = triangle(a,b,c);
triangle t2 = shift(5,3)*rotate(180)*t1;

path abc = t1.Path();
path cba = t2.Path();
real[][] arr = intersections(abc,cba);

path[] sp;

sp = sp^^subpath(abc,arr[1][0],arr[2][0]);
sp = sp^^subpath(abc,arr[3][0],arr[4][0]);
sp = sp^^subpath(abc,arr[5][0],arr[0][0]);

draw(t1,lightgray);
draw(t2,lightgray);
draw(sp,red);

我正在尝试从两条路径的交点创建一条子路径。直到到达最后一个交点,子路径创建都是正确的。上述代码中的第三条子路径行弄乱了子路径。这里出了什么问题?

相关内容