矢量运算
HT008_123
家人们点点关注叭
展开
-
平面凸包--Jarvis
问题描述:覆盖平面上N个点的最小凸多边形 形象来讲就是平面上有n个柱子,把一根封闭的弹性绳套上这些柱子,绳子绷紧以后形成的多边形就是我们要求的凸包.算法实现:1.斜率逼近法,不好写而且很慢,不予介绍。 2.jarvis算法 3.Graham算法 第三个是基于对第二个的优化。 本文主要介绍Jarvis算法,Graham算法下篇文章再议。求平面凸包的数学构造法:找一条直线原创 2018-01-31 10:37:46 · 325 阅读 · 0 评论 -
计算几何工具算法-判断点是否在三角形内
题目描述:给出一个三角形三个点的坐标 以及一个点的坐标 判断这个点是否在三角形内 包括三角形边缘题目分析:最直接的想法是 先求出三角形的面积 S 然后用给出的点和三角形两个顶点作为一个三角形 求出三个面积 s1 s2 s3 然后判断 s==s1+s2+s3 然而这样搞精度误差实在是太大(也可能是我算面积的姿势不太对 看了下书上的方法,是用矢量的叉积来做的 很明显 D原创 2018-01-30 10:28:45 · 469 阅读 · 0 评论 -
[POJ 2398]Toy Storage
题目描述:跟上一题差不多,只是隔板是乱序的,最后输出的是装有 i 个玩具区域的个数题目链接:传送门AC Code:#include #include #include #include using namespace std;struct Point{ double x,y;};struct line{ Point up,down;};in原创 2018-01-30 09:33:00 · 209 阅读 · 0 评论 -
[POJ 2318] Toys (向量叉积的基本运用)
题目大意:有一个抽屉,里面有n个隔板,把这个抽屉分成了n+1个区域,编号分别为 0 - n 给出这个抽屉左上角和右下角的坐标,然后给出每一个隔壁上端和下端的横坐标。 给出m个物品的坐标,判断这m个物品属于哪个区域。 最后输出这n+1个区域内物品的个数题目分析:我们需要判断物品是在隔板的左边还是右边,用矢量叉积即可判断。 如果在 i 区域的左方 那么势必也在 i+1…n区域的左方原创 2018-01-29 21:33:23 · 224 阅读 · 0 评论 -
矢量及其运算
1.矢量的定义矢量是指有方向的线段,也称作向量,即两个端点P1与P2是有着先后顺序关系的,即P1P2→" role="presentation">P1P2−→−−P1P2→\overrightarrow{P_1P_2} 设a=P1P2→" role="presentation">a=P1P2−→−−a=P1P2→a=\overrightarrow{P_1P_2},原创 2018-01-29 20:45:48 · 7681 阅读 · 0 评论 -
[COGS 896] 圈奶牛
题目描述:给你n个点的坐标,问最少用多少花费可以把他们围起来。 传送门题目分析:没啥好分析的,就是个裸的凸包。代码实现:#include #include #include #include const int maxm=10005;const double eps=1e-10;struct Point{ double x,y; Point o原创 2018-01-31 16:12:00 · 255 阅读 · 0 评论 -
平面凸包--Graham
题目描述:覆盖平面上N个点的最小凸多边形 形象来讲就是平面上有n个柱子,把一根封闭的弹性绳套上这些柱子,绳子绷紧以后形成的多边形就是我们要求的凸包.算法实现:上一篇文章介绍了Jarvis算法 复杂度为 O(n*h) 但如果Jarvis的时间效率不够高,我们可以选择另一种更高效的算法–Graham算法. Gramham算法其实是基于对Jarvis算法的一个优化,让我们可以更高效的原创 2018-01-31 15:12:52 · 215 阅读 · 0 评论 -
[POJ 2187/Luogu 1452]Beauty Contest
题目描述:给你n个点,求任意两两之间点的最大距离的平方。题目分析:NN2" role="presentation">N2N2N^2的暴力不可过。 最大的距离肯定是在凸包上的点上取到,于是先求凸包,然后N2" role="presentation">N2N2N^2枚举凸包上的点,凸包上的点不会太多,所以可过。代码实现Jarvis(Luogu 34ms POJ 400+m原创 2018-01-31 10:45:55 · 208 阅读 · 0 评论 -
计算几何工具算法-求任意多边形的面积
题目描述:给出n边形的n个顶点坐标,求这个n边形的面积题目分析:如果在数学上,大概会把这个多边形分成三角形(n-2)个三角形来求 但是这样免不了繁琐的算法,编程复杂度和时间复杂度都很差。 根据矢量叉乘的几何意义 矢量A与矢量B的矢量积是一个矢量,其模等于由A和B作成的平行四边形的面积,下面给出一个公式。 s=(∑i=1nOPi→∗OP原创 2018-01-30 17:08:42 · 766 阅读 · 0 评论 -
计算几何工具算法-判断点与一个多边形的位置关系
题目描述给出一个n边形的n个顶点坐标 然后给出一个点的坐标,判断这个点与多边形的位置关系题目分析:对于在边上的情况很好搞,直接遍历n条边,然后依次用叉积判断即可 对于此点在多边形内部还是外部的问题 可以利用一个性质 从点P画一条足够长的射线 我们会发现 如点P在多边形内部 这条射线与多边形的交点个数为奇数 反之,如果点P在多边形外部,那么这条射线与多边形的交点个数为偶数(包括原创 2018-01-30 15:55:25 · 784 阅读 · 2 评论