<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      const double eps = 1e-8;
      struct point{
      	double x, y;
      	point operator + (const point &p) const{return point{x + p.x, y + p.y};}
      	point operator - (const point &p) const{return point{x - p.x, y - p.y};}
      	point operator * (double t) const{return point{x * t, y * t};}
      	point operator / (double t) const{return point{x / t, y / t};}
      };
      using vec = point;
      double cross(point p1, point p2){return p1.x * p2.y - p1.y * p2.x;}  //叉乘
      int sign(double k){
      	if (k > eps) return 1;
      	else if (k < -eps) return -1;
      	else return 0;
      }
      int parallel(point p1, point p2, point p3, point p4){return sign(cross(p1 - p2, p3 - p4)) == 0;}  //平行
      double dist(point p1, point p2){return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));}  //兩點(diǎn)間距離
      point intersection(point p1, point p2, point p3, point p4){  //兩直線交點(diǎn)
      	double w1 = cross(p1 - p2, p4 - p2);
      	double w2 = -cross(p1 - p2, p3 - p2);
      	return (p3 * w1 + p4 * w2) / (w1 + w2);
      }
      bool onSegment(point p, point s, point t){return fabs(dist(p, s) + dist(p, t) - dist(s, t)) < eps;}  //點(diǎn)是否在線段上
      double distPoint2Vector(point p1, vec v1, point p2, vec v2){return cross(v2, p2 - p1) / cross(v1, v2);}  //點(diǎn) p1 到線段 v2 的距離
      double intersectionPolygon(point A, point B){  //線段 AB 與多邊形的公共長度
      	vector<pair<double, int>> pos;
      	vec v = B - A;
      	for (int i = 0; i < n; i ++ ){
      		int sign1 = sign(cross(v, poly[i] - A));
      		int sign2 = sign(cross(v, poly[(i + 1) % n] - A));
      		if (sign1 == sign2) continue;
      		double w = distPoint2Vector(A, v, poly[i], poly[(i + 1) % n] - poly[i]);
      		pos.push_back({w, sign1 - sign2});
      	}
      	sort(pos.begin(), pos.end());
      	double res = 0;
      	int sum = 0;
      	for (int i = 0; i < pos.size(); i ++ ){
      		sum += pos[i].second;
      		if (sum){
      			res += pos[i + 1].first - pos[i].first;
      		}
      	}
      	return res * dist(A, B);
      };
      
      posted on 2022-11-15 15:20  Hamine  閱讀(175)  評(píng)論(0)    收藏  舉報(bào)

      主站蜘蛛池模板: 日本一区二区三区在线看| 国产精品无码制服丝袜| av中文字幕国产精品| 亚洲熟妇自偷自拍另欧美| 国产精品中文字幕二区| 黄色三级亚洲男人的天堂| 好吊视频一区二区三区人妖| 在线免费播放av观看| 亚洲 欧洲 无码 在线观看| 精品人妻系列无码一区二区三区| 国产高清乱码又大又圆| 91麻豆视频国产一区二区| 色噜噜狠狠色综合成人网| 欧美乱码伦视频免费| 久久理论片午夜琪琪电影网| 婷婷四房播播| av综合网男人的天堂| 亚洲 欧美 中文 日韩aⅴ| 日本一区二区不卡精品| 成人免费A级毛片无码网站入口| 国产95在线 | 欧美| 亚洲一区二区不卡av| 精品亚洲无人区一区二区| 亚洲gay片在线gv网站| 亚洲午夜精品国产电影在线观看| 国产老熟女狂叫对白| 绥中县| 日韩人妻一区中文字幕| 国产片AV国语在线观看手机版| 成年午夜性影院| 久久理论片午夜琪琪电影网| 亚洲成人av在线系列| 青河县| 好日子在线观看视频大全免费动漫 | 激情综合网五月婷婷| 综合人妻久久一区二区精品 | 麻豆精品一区二区综合av| 色综合久久一区二区三区| 日韩精品中文字幕国产一| 国产成人无码免费视频在线| 99热门精品一区二区三区无码|