}
int intersect_ex(point3 l1,point3 l2,point3s1,point3 s2,point3 s3){
returnopposite_side(l1,l2,s1,s2,s3)&&opposite_side(s1,s2,l1,l2,s3)&&
opposite_side(s2,s3,l1,l2,s1)&&opposite_side(s3,s1,l1,l2,s2);
}
//线段交点请另外判线段相交(同时还是要判断是否平行!)
point3 intersection(line3 u,line3 v){
point3ret=u.a;
doublet=((u.a.x-v.a.x)*(v.a.y-v.b.y)-(u.a.y-v.a.y)*(v.a.x-v.b.x))
/((u.a.x-u.b.x)*(v.a.y-v.b.y)-(u.a.y-u.b.y)*(v.a.x-v.b.x));
ret.x=(u.b.x-u.a.x)*t;
ret.y=(u.b.y-u.a.y)*t;
ret.z=(u.b.z-u.a.z)*t;
returnret;
}
point3 intersection(point3 u1,point3u2,point3 v1,point3 v2){
point3ret=u1;
doublet=((u1.x-v1.x)*(v1.y-v2.y)-(u1.y-v1.y)*(v1.x-v2.x))
/((u1.x-u2.x)*(v1.y-v2.y)-(u1.y-u2.y)*(v1.x-v2.x));
ret.x=(u2.x-u1.x)*t;
ret.y=(u2.y-u1.y)*t;
ret.z=(u2.z-u1.z)*t;
returnret;
}
//线段和空间三角形交点请另外判断
point3 intersection(line3 l,plane3 s){
point3ret=pvec(s);
doublet=(ret.x*(s.a.x-l.a.x)ret.y*(s.a.y-l.a.y)ret.z*(s.a.z-l.a.z))/
(ret.x*(l.b.x-l.a.x)ret.y*(l.b.y-l.a.y)ret.z*(l.b.z-l.a.z));
ret.x=l.a.x(l.b.x-l.a.x)*t;
ret.y=l.a.y(l.b.y-l.a.y)*t;
ret.z=l.a.z(l.b.z-l.a.z)*t;
returnret;
}
point3 intersection(point3 l1,point3l2,point3 s1,point3 s2,point3 s3){
point3ret=pvec(s1,s2,s3);
doublet=(ret.x*(s1.x-l1.x)ret.y*(s1.y-l1.y)ret.z*(s1.z-l1.z))/
(ret.x*(l2.x-l1.x)ret.y*(l2.y-l1.y)ret.z*(l2.z-l1.z));
ret.x=l1.x(l2.x-l1.x)*t;
ret.y=l1.y(l2.y-l1.y)*t;
ret.z=l1.z(l2.z-l1.z)*t;
returnret;
}
line3 intersection(plane3 u,plane3 v){
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34960-36.html
但慢慢的就有人开始说道了