ACM计算几何
罗博士
这个作者很懒,什么都没留下…
展开
-
hdu5953 三维空间旋转
题目大意给定若干个3×33\times3的旋转矩阵,对每个矩阵求一个到其他矩阵的最短距离。 两个旋转矩阵的距离做如下定义:对单位球上的任意点PP,经过第一个旋转矩阵的旋转后得到的点为P1P_1,经过第二个旋转矩阵的旋转得到的点为P2P_2,则P1P_1和P2P_2在单位球上有一个距离。对单位球上所有的点PP,P1P_1和P2P_2的最大距离称为两个旋转矩阵之间的距离。思路将第一个旋转记作R1R_1原创 2017-02-09 13:19:38 · 949 阅读 · 1 评论 -
多边形与圆相交求面积题目POJ2986&&hdu2892
多边形与圆相交求面积题目POJ2986&&hdu2892POJ2986hdu2892具体思路可以参考简单多边形与圆相交求面积POJ2986/** 三角形与圆相交求面积*/#include <stdio.h>#include <math.h>using namespace std;double const PI = acos(-1.0...原创 2019-12-24 16:37:36 · 821 阅读 · 0 评论 -
简单多边形与圆相交求面积
简单多边形与圆相交求面积简单多边形的有向面积简单多边形与圆相交的有向面积圆心三角形与圆相交求面积简单多边形的有向面积所谓简单多边形,就是指不相邻的边不相交,且每个顶点只跟2条边相邻。一般而言,除非题目要求判断是否为简单多边形,否则给出的数据肯定都是简单多边形。以下将简单多边形简称为多边形。多边形一般都是以点集的形式给出,顺时针或者逆时针。另外一个需要注意的概念就是多边形的凹凸性。一般而言,凸多...原创 2019-12-24 16:32:40 · 2115 阅读 · 5 评论 -
半平面相交的排序增量法
计算几何与解析几何、向量代数等都有一定的关系,用一定的数据结构与算法来处理几何问题。 计算几何,首先要注意“计算”二字,一定要注意精度问题。在很多题目中,精度设置是直接影响AC还是WA的关键因素。因此,第一,如需要使用浮点数,一般使用double而不用float;第二,浮点数判零的方法,精度最直接体现在这里。double const EPS = 1E-6;#define is0(原创 2014-04-16 20:24:09 · 1802 阅读 · 0 评论 -
GJK算法求凸多边形之间的距离
GJK算法最初用来求三维空间中凸多面体的距离(即最近距离),也因此经常用来做碰撞检测(距离是否为0)。后被推广到n维空间中求凸包之间的距离,此处用来求二维平面上2个凸多边形的距离。 GJK算法首先要解决计算Minkowski和的问题。所谓Minkowski和,指A、B两个集合,令A+B={x+y,其中x属于A,y属于B}即二者的Minkowski和。类似的可以定义负集与Minkow...原创 2014-04-18 10:05:14 · 5209 阅读 · 0 评论 -
POJ3130排序增量法
#include #include using namespace std; double const EPS = 1E-6; #define isZero(x) ( - EPS <= (x) && (x) <= EPS )#define isEq(x,y) isZero( (x) - (y) ) struct point_t{ int x; int y; point_t(原创 2014-04-19 10:31:44 · 629 阅读 · 0 评论 -
计算几何初步及基本数据结构
计算几何与解析几何、向量代数等都有一定的关系,用一定的数据结构与算法来处理几何问题。但是计算几何跟数学的解析几何解决问题的首选方法还是有比较大的区别。 计算几何,首先要注意“计算”二字,一定要注意精度问题。在很多题目中,精度设置是直接影响AC还是WA的关键因素。因此,第一,如需要使用浮点数,一般使用double而不用float;第二,浮点数判零的方法,精度最直接体现在这里(工程实践中浮点原创 2014-06-05 21:53:11 · 2060 阅读 · 0 评论