摘要: 求的是凸包有多少个面。注意,求的是面。这就需要把同一个面的三角形合并。只需判断两个三角形的法向量是否同向平行。/*增量法求凸包。选取一个四面体,同时把它各面的方向向量向外,增加一个点时,若该点与凸包上的某些面的方向向量在同一侧,则去掉那些面,并使某些边与新增点一起连成新的凸包上的面。 */ #inc... 阅读全文
posted @ 2014-08-10 15:16 chenjunjie1994 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题意很明白要求多边形重心。方法已在上篇讲过了。 #include #include #include #include #include using namespace std; const int MAXN=1000005; struct point { double x,y; }; ... 阅读全文
posted @ 2014-08-10 14:11 chenjunjie1994 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 计算凸包重心到各面的最短距离。若知道重心,按四面体用体积法即可求出高。关键在于,多面体重心的求法。这必须把多面体分割成多个四面体来求。下面从多边形的重心说起。一般来用,对于一个多边形(p0,p1,p2....pn-1),其重心一般为pc.x=(p0.x+p1.x+....)/n对于y也一样。但这其实... 阅读全文
posted @ 2014-08-10 11:11 chenjunjie1994 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 直线关于球的多次反射,求最后一次反射点#include #include #include #include #include using namespace std;const double inf=1e10;const double eps=1e-8;struct point { doub... 阅读全文
posted @ 2014-08-10 09:26 chenjunjie1994 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 三维凸包/*增量法求凸包。选取一个四面体,同时把它各面的方向向量向外,增加一个点时,若该点与凸包上的某些面的方向向量在同一侧,则去掉那些面,并使某些边与新增点一起连成新的凸包上的面。 */ #include #include #include #include #include using name... 阅读全文
posted @ 2014-08-10 09:16 chenjunjie1994 阅读(196) 评论(0) 推荐(0) 编辑