组积架构是什么意思?
判断线段相交主要方法为求叉积叉积可以判断点在直线的顺时针方向还是逆时针方向如果一个点在顺时针方向,另一个在逆时针方向,哪么我们说两条线段相交具体的刘汝佳的黑书上面有给个模板:先定义一个直线的结构体:typedefstructline{floatx1,x2,y1,y2;}LINE;boolintersect(LINEl1,LINEl2){......}---------------------------------------------------------------记?dx1=L1.x2-L1.x1,dy1=L1.y2-L1.y1?dx2=L2.x2-L2.x1,dy2=L2.y2-L2.y1则向量积????(dx1,dy1)x(dx2,dy2)=0?时2直线不相交,否则,作为无穷直线,必相交但交点可以不落在2个直线段内,而在它们1个或2个直线段外,所以要进一步判别交点同时落在2个直线段内,为此可以:考察L1在L2上投影是否与L2重叠,L2在L1上投影是否与L1重叠,如果二者皆是,才能肯定L1,L2相交,否则仍未不相交.---------------------------------------------------------------classPOINT{public:doublex,y;};classLINESEG{public:POINTs,e;}l[2000];doublemax(doublea,doubleb){??returna>b?a:b;}doublemin(doublea,doubleb){??returna=min(v.s.x,v.e.x))&&????????????????????//排斥实验???????(max(v.s.x,v.e.x)>=min(u.s.x,u.e.x))&&???????(max(u.s.y,u.e.y)>=min(v.s.y,v.e.y))&&???????(max(v.s.y,v.e.y)>=min(u.s.y,u.e.y))&&???????(multiply(v.s,u.e,u.s)*multiply(u.e,v.e,u.s)>=0)&&????????//跨立实验???????(multiply(u.s,v.e,v.s)*multiply(v.e,u.e,v.s)>=0));}