随笔分类 - 计算几何
摘要:题意:平面内给定n个点,q次询问,给次给定一个点P,问这个点与平面内n个点可以组成多少直角三角形,其中(n+q)个点互不相等 思路: 分别考虑P点作直角顶点和非直角顶点。这个题思路很简单,就是看如何实现简单而且不会tle!!! 对于直角顶点和非直角顶点代码都比较简单,求后者有点离线的思想。 这里想说
阅读全文
摘要:二维几何 // const double eps = 1e 8; const double inf = 1e20; const double pi = acos( 1.0); const int maxp = 1010; // int sgn(double x){ if(fabs(x) 0)retu
阅读全文
摘要:判断点在多边形内 凸多边形 凸多边形考虑叉积,因为在凸多边形中,我们假设围绕多边形走一圈,如果点在多边形内,那么这个点一直在我们的同一侧。按照这个性质,我们顺时针或者逆时针处理多边形上的点,叉积运算,算参考的和多边形上连续的两个点,如何叉积的结果符号发生变化,那么不再多边形内。
阅读全文
摘要:利用叉积,如果点在三角形内部的话,则顺序处理全部边的话,这个点都在边的同一侧,直接用叉积判断
阅读全文
摘要:比赛链接 "http://https://codeforces.com/gym/102220" 题目链接 "https://codeforces.com/gym/102220/problem/C" 题目大意: 给n组二维坐标点,每一组两个点,组成一条直线。问有多少对直线存在公共点。 解题思路 1.如
阅读全文
摘要:题意: 给定平面内若干点,要求求出这些点组成的三角形中锐角三角形的个数。 思路: 锐角三角形,即这个三角形中不存在直角或者钝角。所以现在的思路是不断枚举三个点,看他们之间组成的角度在什么范围内,这样的复杂O(n*n*n),时限内肯定不能通过。对于二维平面的向量,用点积和叉积可以较为方便的判断他们之间
阅读全文
摘要:这里我们说的极角排序,指的是对于二维坐标中的点,当然也可以说是向量。极角排序的用途一般是预处理二维平面中的点,使之变得相对有序,接下来在有序的条件小用O(n)或者O(nlogn)处理,而不是无序条件下的O(n*n)的枚举。 应用链接 https://www.cnblogs.com/gzr2018/p
阅读全文
摘要://对多边形没有要求,但要求点按照顺时针或者逆时针的顺序1 for (int i = 0; i < x; i++) 2 scanf("%lf%lf", &a[i][0], &a[i][1]); 3 a[x][0] = a[0][0]; 4 a[x][1] = a[0][1]; 5 double su
阅读全文
摘要:点的定义 //考虑误差的加法 double add(double a, double b) { if (abs(a + b) include include define eps 1e 8 define pi 3.141592653589793 using namespace std; //二维点类
阅读全文

浙公网安备 33010602011771号