OpenGL中认为合法的多边形必须是凸多边形,凹多边形、自交多边形、带孔的多边形等非凸的多边形在OpenGL中绘制会出现出乎意料的结果。例如,在大多数系统中,只有多边形的凸包被填充,而在有些系统中,并非所有的凸包都被填充。OpenGL之所以对合法多边形类型做出限制,是为了更方便地提供能够对符合条件的多边形进行快速渲染的硬件。简单多边形可被快速地渲染,而复杂多边形难以快速检测出来。为了最大限度的提高性能,OpenGL假定多边形是简单的。...
分类:
其他好文 时间:
2015-01-28 13:02:34
阅读次数:
440
A Round Peg in a Ground Hole
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 5399
Accepted: 1712
Description
The DIY Furniture company specializes in assembl...
分类:
其他好文 时间:
2015-01-27 22:01:36
阅读次数:
175
题目大意:给出平面上的一些点,问面积最小的矩形满足覆盖所有的点。
思路:覆盖问题和不是凸包上的点没关系,先做凸包。根据贪心的思想,这个覆盖了所有点的矩形肯定至少有一条边与凸包上的边重合,那么我们枚举凸包上的每一条边,对于这个已经确定了一条边的矩形,不难确定其他三个边。注意到已知当前直线的向量,就可以求出两侧和对面的向量,而这三个向量随着枚举的边的移动是单调的,所以就可以用旋转卡壳来卡住剩...
分类:
其他好文 时间:
2015-01-23 23:11:16
阅读次数:
481
凸包算法是计算几何中的最经典问题之一了。给定一个点集,计算其凸包。凸包是什么就不罗嗦了本文给出了《计算几何——算法与应用》中一书所列凸包算法的Python实现和Matlab实现,并给出了一个Matlab动画演示程序。啊,实现谁都会实现啦╮(╯▽╰)╭,但是演示就不一定那么好做了。算法CONVEXHU...
分类:
编程语言 时间:
2015-01-23 22:54:33
阅读次数:
502
题目大意:最小矩形覆盖
首先有一个结论:凸包上一定有一条边与矩形的一条边重合
证明:如果不存在一条边与矩形的一条边重合,那么我将这个矩形旋转一下一定会比之前更小
于是我们枚举其中一条边,对其余三个点卡壳即可
这旋转卡壳写的真叫一个卡壳- - 还好1A掉了- -
#include
#include
#include
#include
#include
#define M 5050...
分类:
其他好文 时间:
2015-01-23 16:27:38
阅读次数:
184
题目大意:给定一个点集,任选四点构成一个凸多边形,求面积最大的凸多边形
枚举四边形的对角线,每次固定一个点,扫对角线上的另一个点
每次找到对角线两侧离对角线最远的点,由于两边的点的移动是单调的,因此可以用旋转卡壳维护
此外四边形的面积用对角线叉积的绝对值除以2就可以算出来了- -
#include
#include
#include
#include
#include
#defi...
分类:
其他好文 时间:
2015-01-23 13:26:38
阅读次数:
149
题目大意:给出平面上的一些点,求其中四个点的最大四边形的面积。
思路:简单yy一下发现这些点肯定都在凸包上,先求个凸包。然后直接暴力肯定是不行的,我们需要一个O(n^2)的做法,比较简单的想法是枚举最后要求的四边形的一条对线,那么这个四边形就被分割成了两个三角形,剩下两个点与这条线组成的三角形的面积和就是答案。
按照旋转卡壳的思想不难发现,这两个点都是单调的。所以枚举对角线然后扫n圈就...
分类:
其他好文 时间:
2015-01-22 09:29:32
阅读次数:
192
result=对所有点凸包周长+pi*2*LWA了一次,被Pi的精度坑了以后注意Pi尽可能搞精确一点。Pi=3.14还是不够用Code: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #inclu...
分类:
其他好文 时间:
2015-01-20 20:06:18
阅读次数:
232
Once upon a time there was a greedy King who ordered hischief Architect to build a wall around the King's castle. The King was sogreedy, that he would not listen to his Architect's proposals to build ...
分类:
其他好文 时间:
2015-01-09 19:25:33
阅读次数:
297
刚开始学随机算法,凸包+模拟退火。 1 /* 2440 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define M...
分类:
其他好文 时间:
2015-01-07 12:38:08
阅读次数:
129