![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM-计算几何
「已注销」
这个作者很懒,什么都没留下…
展开
-
判断两条线段是否相交
说明包括了一个或多个点重合的情况。 输入点的坐标顺序为Ax,Ay,Bx,By,Cx,Cy,Dx,Dy,判断线段AB与线段CD是否相交。 由于问题比较简单,没有用到向量、叉积什么的,而是用了奇怪的作图法+不证明直接推广法(?)。 可以画个图验证一下。对于稍难的计算几何题,这些奇技淫巧就没有用了。#include <stdio.h>int main(){ int x1, y1, x2,原创 2017-12-17 22:55:20 · 203 阅读 · 0 评论 -
计算多边形面积
说明我们假定得到了按照逆时针顺序给出的 n 个顶点的坐标(x1, y1, x2, y2… xn, yn)且坐标均为整数。 那么最简洁的方法就是计算向量叉积(其实也是算行列式)来求,对凹多边形也适用。直观的理解是将多边形分为了若干个小三角形分别求面积。#include <iostream>#include <cstdio>#include <cmath>using namespace std;原创 2018-01-10 20:20:18 · 363 阅读 · 0 评论 -
EOJ 1126 最近点对
题目简介给定平面上的一些点,求最近点对。说明本来是个复杂的分治题,不知道是不是因为数据弱我疯狂取min也AC了……留坑待填。#include #include #include using namespace std;struct point{double x, y;}p[100001];bool cmp(point a, point b){ if原创 2018-01-30 12:09:45 · 257 阅读 · 0 评论 -
判断线段是否与矩形相交
输入格式: xstart ystart xend yend xleft ytop xright ybottom Note: The terms top left and bottom right do not imply any ordering of coordinates.计算几何题对我来说,光是写对就要花很久,而代码还要做到既简洁又易懂真是难上加难…… 注意点在于:原创 2018-02-07 22:00:11 · 4382 阅读 · 3 评论 -
EOJ 1189/POJ 1113/HDU 1348 Wall
题目简介给定平面上的n个点及半径r,求圆的周长与凸包周长之和。说明记录一下Graham求凸包的模板。#include <bits/stdc++.h>using namespace std;const double PI = acos(-1.0);const int maxn = 1005;struct point {int x, y;}p[maxn]...原创 2018-02-17 22:15:22 · 229 阅读 · 0 评论