计算几何
文章平均质量分 60
SaltyFishWei
这个作者很懒,什么都没留下…
展开
-
计算几何学习笔记之点和直线
向量的基本运算http://blog.csdn.net/cqbzwja/article/details/51030712 直线用参数方程表示,参数方程就是直线上任意一点,加上一个方向向量,以及参数t。假设直线上所有点满足P=P0+tv⃗ P = P_0+t\vec v,那么t为参数,P0是直线上任意一点,v是直线的方向。假设点Q有Q=P0+t0v⃗ Q = P_0+t_0\vec v,则表示Q在P原创 2016-04-01 15:30:10 · 1191 阅读 · 0 评论 -
计算几何学习笔记之多边形
凸多边形:指如果把一个多边形的所有边中,任意一条边向两方无限延长成为一直线时,其他各边都在此直线的同旁,那么这个多边形就叫做凸多边形,其内角应该全不是优角。 非凸多边形:不是凸多边形的多边形。 多边形的有向面积:通过把n边形转换为n-2个三角形(从第一个顶点出发向其他点连边),用叉乘公式求每个三角形的有向面积。对于非凸多边形也同样适用,在外面部分可以正负抵消。实际中,多是求多边形的面积而不是有向原创 2016-04-01 15:51:36 · 534 阅读 · 0 评论 -
计算几何学习笔记之基本运算
模板在网上很容易找到,这里我就讲一讲我对这些代码(lrj白皮书上的)的理解,包括添加证明,插图等。定义向量及向量的四则运算,其中A,B都是一个向量。(貌似是高中数学课本上的内容)原创 2016-03-31 22:16:04 · 967 阅读 · 0 评论 -
计算几何学习笔记之凸包
凸包就是把给定点包围在内部,面积最小的凸多边形。 先将所有点排序(x小的放在前面,x相同则y小的放在前面),用一个栈维护已经加入凸多边形的点,类似于DP的单调栈优化。按照逆时针(顺时针则操作取反)顺序依次加入点,如果新点在上一根直线的左边则加入,否则弹出栈顶的边,直到新点在上一根直线的右边。点的位置可以用叉积正负判断。 需要执行以上操作两次,第一次加入凸包下方的点,第二次为凸包上方的点。 in原创 2016-04-01 16:20:07 · 753 阅读 · 0 评论 -
计算几何学习笔记之旋转卡壳
旋转卡壳的用途太广太广了,而且每种用途代码都大同小异,这里只简单介绍一下(毕竟我也没怎么写过) 什么是旋转卡壳?可以想象成有一双筷子(筷子是平行的),把凸多边形夹了起来,然后不停地旋转,旋转。旋转中筷子要么是紧贴多边形的边要么就是紧贴多边形的顶点。 旋转卡壳简介:http://blog.csdn.net/acmaker/article/details/3176910 计算凸多边形上的最远点原创 2016-04-01 18:11:53 · 2321 阅读 · 0 评论 -
POJ 1279&1474 (多边形的核)
关于多边形的核,我的这篇博客有介绍,就不多说了,差不多就是粘模板吧。 POJ1279求多边形核的面积(貌似G++编译器有问题,C++就过了)#include<cstdio>#include<cmath>#include<algorithm>#define MAXN 1550using namespace std;struct poi{ double x,y; poi(d原创 2016-04-05 21:42:09 · 625 阅读 · 0 评论 -
两个圆柱相交的体积 UVALive 5096 Volume
本博客主要讨论从积分和非积分方式计算两个圆柱体交集的体积。由于博主的高数很烂,有什么不得当的地方还望大家指出来。 两个圆柱相交: 不难发现相交有两种情况,如图所示是2R<H2R<H的情况。 我们先暂且不考虑第二种2R>H2R>H的情况,先看第一种。把多余的地方切去,会得到这个立体图形: 这个叫做牟合方盖。通过百度不难发现它的体积公式为163R3\frac{16}{3}R^3,那么问题原创 2016-04-05 14:11:59 · 25532 阅读 · 0 评论 -
计算几何之半平面交、多边形的核
半平面指一个平面的一半。比如在二维空间中,一条直线可以把整个平面分为两部分,左边是一个半平面右边是一个半平面。而半平面交就是一堆半平面的交集,可以想象成线性规划方程组A0x+B0y+C0>=0,A1x+B1y+C1<=0......A_0x+B_0y+C_0>=0,A_1x+B_1y+C_1<=0......的解集 如果一根直线是有向的,我们可以定义它的左边是它对应的半平面(也可以是右边),那么半原创 2016-04-01 17:46:08 · 3047 阅读 · 1 评论 -
POJ3525 Most Distant Point from the Sea(半平面交)
有一个海岛,求海岛上距离海岸线最远的点。lrj白皮书例题,我这里也有介绍半平面交的相关知识。直接求不好求,于是二分这个距离,把海岸线向”里”(逆时针给出边的时候左边为里,也就是它对应的半平面)移动这个距离,如果这些半平面有交集,则说明距离不够远,如果没有交集则说明距离太远。于是二分到恰好没有交集。#include<cstdio>#include<cmath>#include<algorithm>原创 2016-04-05 22:19:16 · 400 阅读 · 0 评论