判断凸多边形(向量叉积运用)
469. 凸多边形 - 力扣(LeetCode)
给定 X-Y 平面上的一组点 points ,其中 points[i] = [xi, yi] 。这些点按顺序连成一个多边形。
如果该多边形为 凸 多边形(凸多边形的定义)则返回 true ,否则返回 false 。
你可以假设由给定点构成的多边形总是一个 简单的多边形(简单多边形的定义)。换句话说,我们要保证每个顶点处恰好是两条边的汇合点,并且这些边 互不相交 。
示例 1:
输入: points = [[0,0],[0,5],[5,5],[5,0]]
输出: true示例 2:
输入: points = [[0,0],[0,10],[10,10],[10,0],[5,5]]
输出: false
提示:
3 <= points.length <= 104
points[i].length == 2
-104 <= xi, yi <= 104
所有点都 不同
根据叉积,右手螺旋定则,每两次的叉乘结果都应该指向同一个方向,也就是符号要相同,可以很轻松的判断是否为凸多边形(自己用右手举两个例子试一试就可以了),注意数据范围,连续4个int相乘是会爆掉范围的,所以用long long。
class Solution {
public:bool isConvex(vector<vector<int>>& points) {long long curCrossVector=0;long long preCrossVector=0;int n=points.size();for(int i=0;i<n;i++){long long x1=points[(i+1)%n][0]-points[i][0];long long y1=points[(i+1)%n][1]-points[i][1];long long x2=points[(i+2)%n][0]-points[i][0];long long y2=points[(i+2)%n][1]-points[i][1];long long curCrossVector=x1*y2-x2*y1;//两向量不平行if(curCrossVector!=0){if(curCrossVector*preCrossVector<0){return false;}else{preCrossVector=curCrossVector;}}}return true;}
};
判断凸多边形(向量叉积运用)相关推荐
- POJ 1584 A Round Peg in a Ground Hole 判断凸多边形,点到线段距离,点在多边形内
ACM博客_kuangbin POJ 1584 A Round Peg in a Ground Hole(判断凸多边形,点到线段距离,点在多边形内) A Round Peg in a Ground H ...
- 【2019西安ICPC邀请赛热身赛A hdu2036】求多(四)边形面积(四边形面积公式/向量叉积)
这是热身赛的一道签到题,写博客的目的主要是熟悉一下向量点叉积的写法. (叉积求多边形面积:hdu2036,模版题) 题目: 解题思路: 四边形面积公式:(也适用于凹四边形) s=(m*n*sinA)/ ...
- 向量叉积(Cross product)的几何意义及应用
向量叉积 仅在三维空间,两个向量的叉积才有定义,记作 u ^ v 定义为: u ^ v = ||u|| ||v|| sin(θ) n 其中,θ表示u 和 v 的夹角, ||u|| 和 ||v|| 分别 ...
- R语言all函数、any函数判断逻辑向量(logical vector)实战
R语言all函数.any函数判断逻辑向量(logical vector)实战 目录 R语言all函数.any函数判断逻辑向量(logical vector)实战 #基本语法
- 利用向量叉积求三角形的面积(+STL:nth_element求第K大的数)
牛客寒假算法集训营2 https://ac.nowcoder.com/acm/contest/327/A A.处女座的签到题 题目描述 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多 ...
- hihoCoder1687(向量叉积)
#1687 : 寻找切线 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定平面上N个点P1=(X1, Y1), P2=(X2, Y2), ... PN=(XN, YN ...
- 向量点积(Dot Product),向量叉积(Cross Product)
参考的是<游戏和图形学的3D数学入门教程>,非常不错的书,推荐阅读,老外很喜欢把一个东西解释的很详细. 1.向量点积(Dot Product) 向量点积的结果有什么意义?事实上,向量的点积 ...
- 三维欧几里德空间中两个向量叉积的问题
三维欧几里德空间中两个向量叉积的问题 定义 矩阵表示 几何意义 定义 两个向量 a和b仅在三维空间中有意义.定义为: a ⃗ ∗ b ⃗ = ∣ ∣ a ⃗ ∣ ∣ ∣ ∣ b ⃗ ∣ ∣ s i n ...
- 向量叉积与向量叉积的模的运算
一:向量叉积 设两个点P(x1,y1,z1),Q(x2,y2,z2) 叉积PxQ=(y1z2-y2z1,x2z1-x1z2,x1y2-x2y1) 代码实现(vb.net封成一个函数): Private ...
- 判断一个向量在另外一个向量左边还是右边
通过叉乘判断结果向量的Z方向,叉乘前先将两个向量的Z设置为0 叉乘前先将两个向量的Z设置为0为了使两个向量都处于XY平面中. 叉乘的结果是一个垂直于XY平面的向量,所以结果应该是一个(0,0,ZVal ...
最新文章
- centos网络安装
- UA PHYS515A 电磁理论III 静磁学问题1 Maxwell方程与静磁学问题
- nginx 如何实现读写限流的方法
- 拥有属于你的“尬聊”机器人
- ### 阅读之痕-2013/11
- 触发器及其应用实验报告总结_2020年中考总复习: 光现象、透镜及其应用知识点总结...
- 功夫熊猫2观后感,无剧透,放心进
- python soup findall 第几个元素_BeautifulSoup库findAll()、find()方法详解
- vb access mysql数据库教程_VB操作access数据库
- QC七大手法之直方图详解
- UE4蓝图节点不同颜色代表
- “pip-script.py”is not present的问题
- DEEPIN 设置U盘启动
- word、wps图文复制一键粘贴到富文本编辑器
- 第一类斯特林数和第二类斯特林数
- Spring+SpringMVC+MyBatis框架搭建-----详细教程
- python爬虫跳过异常处理
- 牛客2020年七夕节比赛 D.拜托了,牛老师
- windows10安装绿色版Tomcat7
- 为什么圆弧长度这样定义?