returndmult(pvec(u),pvec(v))/vlen(pvec(u))/vlen(pvec(v));
}
double angle_cos(point3 u1,point3 u2,point3u3,point3 v1,point3 v2,point3 v3){
returndmult(pvec(u1,u2,u3),pvec(v1,v2,v3))/vlen(pvec(u1,u2,u3))/vlen(pvec(v1,v2,v3));
}
double angle_sin(line3 l,plane3 s){
returndmult(subt(l.a,l.b),pvec(s))/vlen(subt(l.a,l.b))/vlen(pvec(s));
}
double angle_sin(point3 l1,point3 l2,point3s1,point3 s2,point3 s3){
returndmult(subt(l1,l2),pvec(s1,s2,s3))/vlen(subt(l1,l2))/vlen(pvec(s1,s2,s3));
}
#define abs(x) ((x)>0?(x):-(x))
struct point{int x,y;};
int gcd(int a,int b){
returnb?gcd(b,a%b):a;
}
int grid_onedge(int n,point* p){
inti,ret=0;
for(i=0;i<n;i)
ret=gcd(abs(p[i].x-p[(i1)%n].x),abs(p[i].y-p[(i1)%n].y));
returnret;
}
int grid_inside(int n,point* p){
inti,ret=0;
for(i=0;i<n;i)
ret=p[(i1)%n].y*(p[i].x-p[(i2)%n].x);
return(abs(ret)-grid_onedge(n,p))/21;
}
#include <math.h>
#define eps 1e-8
struct point{double x,y;};
double xmult(point p1,point p2,point p0){
return(p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
double distance(point p1,point p2){
returnsqrt((p1.x-p2.x)*(p1.x-p2.x)(p1.y-p2.y)*(p1.y-p2.y));
}
double disptoline(point p,point l1,pointl2){
returnfabs(xmult(p,l1,l2))/distance(l1,l2);
}
point intersection(point u1,point u2,pointv1,point v2){
pointret=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;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-34960-38.html
美国现役主战舰艇
我们不嫌她老