亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 浮點函數.txt

?? normal template for acm/ICPC
?? TXT
字號:
//浮點幾何函數庫
#include <math.h>
#define eps 1e-8
#define zero(x) (((x)>0?(x):-(x))<eps)
struct point{double x,y;};
struct line{point a,b;};

//計算cross product (P1-P0)x(P2-P0)
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 xmult(double x1,double y1,double x2,double y2,double x0,double y0){
	return (x1-x0)*(y2-y0)-(x2-x0)*(y1-y0);
}

//計算dot product (P1-P0).(P2-P0)
double dmult(point p1,point p2,point p0){
	return (p1.x-p0.x)*(p2.x-p0.x)+(p1.y-p0.y)*(p2.y-p0.y);
}
double dmult(double x1,double y1,double x2,double y2,double x0,double y0){
	return (x1-x0)*(x2-x0)+(y1-y0)*(y2-y0);
}

//兩點距離
double distance(point p1,point p2){
	return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
double distance(double x1,double y1,double x2,double y2){
	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

//判三點共線
int dots_inline(point p1,point p2,point p3){
	return zero(xmult(p1,p2,p3));
}
int dots_inline(double x1,double y1,double x2,double y2,double x3,double y3){
	return zero(xmult(x1,y1,x2,y2,x3,y3));
}

//判點是否在線段上,包括端點
int dot_online_in(point p,line l){
	return zero(xmult(p,l.a,l.b))&&(l.a.x-p.x)*(l.b.x-p.x)<eps&&(l.a.y-p.y)*(l.b.y-p.y)<eps;
}
int dot_online_in(point p,point l1,point l2){
	return zero(xmult(p,l1,l2))&&(l1.x-p.x)*(l2.x-p.x)<eps&&(l1.y-p.y)*(l2.y-p.y)<eps;
}
int dot_online_in(double x,double y,double x1,double y1,double x2,double y2){
	return zero(xmult(x,y,x1,y1,x2,y2))&&(x1-x)*(x2-x)<eps&&(y1-y)*(y2-y)<eps;
}

//判點是否在線段上,不包括端點
int dot_online_ex(point p,line l){
	return dot_online_in(p,l)&&(!zero(p.x-l.a.x)||!zero(p.y-l.a.y))&&(!zero(p.x-l.b.x)||!zero(p.y-l.b.y));
}
int dot_online_ex(point p,point l1,point l2){
	return dot_online_in(p,l1,l2)&&(!zero(p.x-l1.x)||!zero(p.y-l1.y))&&(!zero(p.x-l2.x)||!zero(p.y-l2.y));
}
int dot_online_ex(double x,double y,double x1,double y1,double x2,double y2){
	return dot_online_in(x,y,x1,y1,x2,y2)&&(!zero(x-x1)||!zero(y-y1))&&(!zero(x-x2)||!zero(y-y2));
}

//判兩點在線段同側,點在線段上返回0
int same_side(point p1,point p2,line l){
	return xmult(l.a,p1,l.b)*xmult(l.a,p2,l.b)>eps;
}
int same_side(point p1,point p2,point l1,point l2){
	return xmult(l1,p1,l2)*xmult(l1,p2,l2)>eps;
}

//判兩點在線段異側,點在線段上返回0
int opposite_side(point p1,point p2,line l){
	return xmult(l.a,p1,l.b)*xmult(l.a,p2,l.b)<-eps;
}
int opposite_side(point p1,point p2,point l1,point l2){
	return xmult(l1,p1,l2)*xmult(l1,p2,l2)<-eps;
}

// 點關于直線的對稱點 // by lyt
// 缺點:用了斜率
// 也可以利用"點到直線上的最近點"來做,避免使用斜率。
point symmetric_point(point p1, point l1, point l2) {
  point ret;  
  if (l1.x > l2.x - eps && l1.x < l2.x + eps) {
    ret.x = (2 * l1.x - p1.x);
	ret.y = p1.y;
  } else {
    double k = (l1.y - l2.y ) / (l1.x - l2.x);
    ret.x = (2*k*k*l1.x + 2*k*p1.y - 2*k*l1.y - k*k*p1.x + p1.x) / (1 + k*k);
    ret.y = p1.y - (ret.x - p1.x ) / k;
  }
  return ret;
}

//判兩直線平行
int parallel(line u,line v){
	return zero((u.a.x-u.b.x)*(v.a.y-v.b.y)-(v.a.x-v.b.x)*(u.a.y-u.b.y));
}
int parallel(point u1,point u2,point v1,point v2){
	return zero((u1.x-u2.x)*(v1.y-v2.y)-(v1.x-v2.x)*(u1.y-u2.y));
}

//判兩直線垂直
int perpendicular(line u,line v){
	return zero((u.a.x-u.b.x)*(v.a.x-v.b.x)+(u.a.y-u.b.y)*(v.a.y-v.b.y));
}
int perpendicular(point u1,point u2,point v1,point v2){
	return zero((u1.x-u2.x)*(v1.x-v2.x)+(u1.y-u2.y)*(v1.y-v2.y));
}

//判兩線段相交,包括端點和部分重合
int intersect_in(line u,line v){
	if (!dots_inline(u.a,u.b,v.a)||!dots_inline(u.a,u.b,v.b))
		return !same_side(u.a,u.b,v)&&!same_side(v.a,v.b,u);
	return dot_online_in(u.a,v)||dot_online_in(u.b,v)||dot_online_in(v.a,u)||dot_online_in(v.b,u);
}
int intersect_in(point u1,point u2,point v1,point v2){
	if (!dots_inline(u1,u2,v1)||!dots_inline(u1,u2,v2))
		return !same_side(u1,u2,v1,v2)&&!same_side(v1,v2,u1,u2);
	return dot_online_in(u1,v1,v2)||dot_online_in(u2,v1,v2)||dot_online_in(v1,u1,u2)||dot_online_in(v2,u1,u2);
}

//判兩線段相交,不包括端點和部分重合
int intersect_ex(line u,line v){
	return opposite_side(u.a,u.b,v)&&opposite_side(v.a,v.b,u);
}
int intersect_ex(point u1,point u2,point v1,point v2){
	return opposite_side(u1,u2,v1,v2)&&opposite_side(v1,v2,u1,u2);
}

//計算兩直線交點,注意事先判斷直線是否平行!
//線段交點請另外判線段相交(同時還是要判斷是否平行!)
point intersection(line u,line v){
	point ret=u.a;
	double t=((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;
	return ret;
}
point intersection(point u1,point u2,point v1,point v2){
	point ret=u1;
	double t=((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;
	return ret;
}

//點到直線上的最近點
point ptoline(point p,line l){
	point t=p;
	t.x+=l.a.y-l.b.y,t.y+=l.b.x-l.a.x;
	return intersection(p,t,l.a,l.b);
}
point ptoline(point p,point l1,point l2){
	point t=p;
	t.x+=l1.y-l2.y,t.y+=l2.x-l1.x;
	return intersection(p,t,l1,l2);
}

//點到直線距離
double disptoline(point p,line l){
	return fabs(xmult(p,l.a,l.b))/distance(l.a,l.b);
}
double disptoline(point p,point l1,point l2){
	return fabs(xmult(p,l1,l2))/distance(l1,l2);
}
double disptoline(double x,double y,double x1,double y1,double x2,double y2){
	return fabs(xmult(x,y,x1,y1,x2,y2))/distance(x1,y1,x2,y2);
}

//點到線段上的最近點
point ptoseg(point p,line l){
	point t=p;
	t.x+=l.a.y-l.b.y,t.y+=l.b.x-l.a.x;
	if (xmult(l.a,t,p)*xmult(l.b,t,p)>eps)
		return distance(p,l.a)<distance(p,l.b)?l.a:l.b;
	return intersection(p,t,l.a,l.b);
}
point ptoseg(point p,point l1,point l2){
	point t=p;
	t.x+=l1.y-l2.y,t.y+=l2.x-l1.x;
	if (xmult(l1,t,p)*xmult(l2,t,p)>eps)
		return distance(p,l1)<distance(p,l2)?l1:l2;
	return intersection(p,t,l1,l2);
}

//點到線段距離
double disptoseg(point p,line l){
	point t=p;
	t.x+=l.a.y-l.b.y,t.y+=l.b.x-l.a.x;
	if (xmult(l.a,t,p)*xmult(l.b,t,p)>eps)
		return distance(p,l.a)<distance(p,l.b)?distance(p,l.a):distance(p,l.b);
	return fabs(xmult(p,l.a,l.b))/distance(l.a,l.b);
}
double disptoseg(point p,point l1,point l2){
	point t=p;
	t.x+=l1.y-l2.y,t.y+=l2.x-l1.x;
	if (xmult(l1,t,p)*xmult(l2,t,p)>eps)
		return distance(p,l1)<distance(p,l2)?distance(p,l1):distance(p,l2);
	return fabs(xmult(p,l1,l2))/distance(l1,l2);
}

//矢量V以P為頂點逆時針旋轉angle并放大scale倍
point rotate(point v,point p,double angle,double scale){
	point ret=p;
	v.x-=p.x,v.y-=p.y;
	p.x=scale*cos(angle);
	p.y=scale*sin(angle);
	ret.x+=v.x*p.x-v.y*p.y;
	ret.y+=v.x*p.y+v.y*p.x;
	return ret;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av电影在线网| 韩国一区二区在线观看| 国产精品免费视频一区| 久久精品一级爱片| 久久婷婷色综合| 欧美精品一区男女天堂| 精品日韩一区二区三区免费视频| 欧美mv日韩mv亚洲| 久久久久久9999| 久久精品人人做人人综合| 国产人成一区二区三区影院| 欧美极品xxx| 最新久久zyz资源站| 一区二区三区在线视频免费 | 欧美日韩中文国产| 欧美亚州韩日在线看免费版国语版| 在线精品亚洲一区二区不卡| 欧美日韩国产综合草草| 欧美电视剧免费全集观看| 精品久久久久久综合日本欧美| 久久久久久久精| 国产精品激情偷乱一区二区∴| 亚洲精品美腿丝袜| 青青草国产成人99久久| 国产一本一道久久香蕉| 91影院在线免费观看| 欧美精品乱人伦久久久久久| 久久综合九色综合久久久精品综合| 国产精品妹子av| 亚洲成人www| 国产成人午夜视频| 在线观看国产精品网站| 精品日韩99亚洲| 亚洲精品国产一区二区精华液 | 精品久久一区二区| 国产精品免费久久| 亚洲成人精品影院| 国产高清视频一区| 欧美肥妇bbw| 亚洲视频一二三区| 国产一区二区福利| 欧美人狂配大交3d怪物一区| 国产清纯在线一区二区www| 亚洲国产精品一区二区www| 国产乱码精品一区二区三| 欧美日韩午夜精品| 国产精品久久久99| 国产一区二三区| 欧美精品三级日韩久久| 亚洲美女偷拍久久| 成人黄色大片在线观看| 日韩一区二区电影网| 亚洲自拍偷拍九九九| 成熟亚洲日本毛茸茸凸凹| 91精品国产91综合久久蜜臀| 一区二区三区精品久久久| 成人性色生活片免费看爆迷你毛片| 91精品国产麻豆国产自产在线 | 日韩视频在线你懂得| 中文字幕日韩一区| 懂色av一区二区在线播放| 日韩美女视频在线| 人人超碰91尤物精品国产| 欧美日韩三级在线| 亚洲综合一区二区三区| 色天使久久综合网天天| 亚洲视频一区二区在线| 9色porny自拍视频一区二区| 国产亲近乱来精品视频| 国产精品资源网站| 国产欧美日韩另类一区| 国产乱色国产精品免费视频| 久久色在线观看| 国产精品自产自拍| 欧美激情综合网| 成人av午夜影院| 亚洲欧洲精品一区二区三区| www.欧美亚洲| 一区二区三区在线视频免费| 欧美亚洲愉拍一区二区| 亚洲福利一二三区| 这里只有精品电影| 日韩电影在线看| 亚洲欧洲国产专区| 色国产精品一区在线观看| 一区二区在线观看视频在线观看| 色就色 综合激情| 亚洲电影激情视频网站| 欧美一级二级在线观看| 国产精品主播直播| 亚洲色欲色欲www在线观看| 色拍拍在线精品视频8848| 亚洲一级电影视频| 日韩欧美精品在线视频| 丰满放荡岳乱妇91ww| 亚洲女厕所小便bbb| 欧美一区二区私人影院日本| 黑人巨大精品欧美一区| 国产精品电影院| 欧美另类z0zxhd电影| 久久精品国产一区二区三 | 91高清视频免费看| 同产精品九九九| 精品久久久久久久久久久久久久久久久 | 午夜成人免费电影| 精品精品国产高清a毛片牛牛| 成人av动漫网站| 日本最新不卡在线| 亚洲欧美一区二区视频| 欧美精品三级日韩久久| 丁香五精品蜜臀久久久久99网站| 亚洲国产日韩a在线播放性色| 日韩欧美亚洲一区二区| 亚洲欧美日韩系列| 中文一区二区完整视频在线观看| 国产激情精品久久久第一区二区| 亚洲欧洲精品一区二区三区| 欧美日韩一卡二卡| 成人午夜在线视频| 美女脱光内衣内裤视频久久网站| 自拍偷拍国产精品| 欧美成人aa大片| 精品视频色一区| 一本久久综合亚洲鲁鲁五月天 | 国产精品成人网| 欧美精品99久久久**| 99久久99久久精品免费观看| 久久av资源网| 性感美女极品91精品| 国产精品国产三级国产aⅴ入口 | 色婷婷综合久久| 国产真实乱子伦精品视频| 亚洲国产精品综合小说图片区| 国产欧美日韩在线看| 日韩视频在线你懂得| 日本高清不卡一区| 99久久777色| 成人黄色片在线观看| 国产成人自拍网| 国产米奇在线777精品观看| 日本欧美久久久久免费播放网| 亚洲精品中文在线| 成人欧美一区二区三区小说| 久久综合999| 精品国产乱码久久| 日韩欧美国产小视频| 欧美一级一级性生活免费录像| 欧美亚一区二区| 欧美日韩一二区| 在线不卡一区二区| 91精选在线观看| 日韩欧美一二区| 久久综合久久综合久久综合| 欧美日韩黄视频| 日本精品免费观看高清观看| 91亚洲精品久久久蜜桃| 波多野洁衣一区| 91美女福利视频| 97se亚洲国产综合自在线| 综合激情成人伊人| 亚洲成人黄色影院| 日韩av在线发布| 激情五月激情综合网| 国产精品1024| 99久久精品国产导航| 欧美性色综合网| 69av一区二区三区| 欧美精品一区二区三| 国产午夜精品一区二区三区四区| 国产午夜精品理论片a级大结局| 国产精品剧情在线亚洲| 一区二区三区中文免费| 日韩国产精品久久久| 精品一区二区精品| 成人福利视频在线看| 在线观看一区日韩| 精品久久一区二区| 亚洲视频资源在线| 日av在线不卡| 99久久久免费精品国产一区二区| 欧美在线三级电影| 精品久久久久久久一区二区蜜臀| 国产精品免费视频一区| 亚洲va国产天堂va久久en| 另类欧美日韩国产在线| 成人国产在线观看| 8v天堂国产在线一区二区| 久久美女高清视频| 亚洲一二三四区| 国产精品一区不卡| 欧美日韩国产在线播放网站| 久久久精品中文字幕麻豆发布| 亚洲黄色免费网站| 国产一区福利在线| 欧美日韩电影一区| 国产精品成人免费精品自在线观看 | 欧美不卡一二三| 亚洲图片激情小说| 国产麻豆一精品一av一免费| 欧美三级日韩三级|