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;}
};

判断凸多边形(向量叉积运用)相关推荐

  1. 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 ...

  2. 【2019西安ICPC邀请赛热身赛A hdu2036】求多(四)边形面积(四边形面积公式/向量叉积)

    这是热身赛的一道签到题,写博客的目的主要是熟悉一下向量点叉积的写法. (叉积求多边形面积:hdu2036,模版题) 题目: 解题思路: 四边形面积公式:(也适用于凹四边形) s=(m*n*sinA)/ ...

  3. 向量叉积(Cross product)的几何意义及应用

    向量叉积 仅在三维空间,两个向量的叉积才有定义,记作 u ^ v 定义为: u ^ v = ||u|| ||v|| sin(θ) n 其中,θ表示u 和 v 的夹角, ||u|| 和 ||v|| 分别 ...

  4. R语言all函数、any函数判断逻辑向量(logical vector)实战

    R语言all函数.any函数判断逻辑向量(logical vector)实战 目录 R语言all函数.any函数判断逻辑向量(logical vector)实战 #基本语法

  5. 利用向量叉积求三角形的面积(+STL:nth_element求第K大的数)

    牛客寒假算法集训营2 https://ac.nowcoder.com/acm/contest/327/A A.处女座的签到题 题目描述 平面上有n个点,问:平面上所有三角形面积第k大的三角形的面积是多 ...

  6. hihoCoder1687(向量叉积)

    #1687 : 寻找切线 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定平面上N个点P1=(X1, Y1), P2=(X2, Y2), ... PN=(XN, YN ...

  7. 向量点积(Dot Product),向量叉积(Cross Product)

    参考的是<游戏和图形学的3D数学入门教程>,非常不错的书,推荐阅读,老外很喜欢把一个东西解释的很详细. 1.向量点积(Dot Product) 向量点积的结果有什么意义?事实上,向量的点积 ...

  8. 三维欧几里德空间中两个向量叉积的问题

    三维欧几里德空间中两个向量叉积的问题 定义 矩阵表示 几何意义 定义 两个向量 a和b仅在三维空间中有意义.定义为: a ⃗ ∗ b ⃗ = ∣ ∣ a ⃗ ∣ ∣ ∣ ∣ b ⃗ ∣ ∣ s i n ...

  9. 向量叉积与向量叉积的模的运算

    一:向量叉积 设两个点P(x1,y1,z1),Q(x2,y2,z2) 叉积PxQ=(y1z2-y2z1,x2z1-x1z2,x1y2-x2y1) 代码实现(vb.net封成一个函数): Private ...

  10. 判断一个向量在另外一个向量左边还是右边

    通过叉乘判断结果向量的Z方向,叉乘前先将两个向量的Z设置为0 叉乘前先将两个向量的Z设置为0为了使两个向量都处于XY平面中. 叉乘的结果是一个垂直于XY平面的向量,所以结果应该是一个(0,0,ZVal ...

最新文章

  1. centos网络安装
  2. UA PHYS515A 电磁理论III 静磁学问题1 Maxwell方程与静磁学问题
  3. nginx 如何实现读写限流的方法
  4. 拥有属于你的“尬聊”机器人
  5. ### 阅读之痕-2013/11
  6. 触发器及其应用实验报告总结_2020年中考总复习: 光现象、透镜及其应用知识点总结...
  7. 功夫熊猫2观后感,无剧透,放心进
  8. python soup findall 第几个元素_BeautifulSoup库findAll()、find()方法详解
  9. vb access mysql数据库教程_VB操作access数据库
  10. QC七大手法之直方图详解
  11. UE4蓝图节点不同颜色代表
  12. “pip-script.py”is not present的问题
  13. DEEPIN 设置U盘启动
  14. word、wps图文复制一键粘贴到富文本编辑器
  15. 第一类斯特林数和第二类斯特林数
  16. Spring+SpringMVC+MyBatis框架搭建-----详细教程
  17. python爬虫跳过异常处理
  18. 牛客2020年七夕节比赛 D.拜托了,牛老师
  19. windows10安装绿色版Tomcat7
  20. 为什么圆弧长度这样定义?

热门文章

  1. MIT线性代数笔记二十五讲 对称矩阵和正定性
  2. React Ant Design注意项
  3. Cisco PT模拟实验(10) 路由器的基本配置
  4. bs4和lxml用法
  5. 保养身体的各个最佳时间
  6. 【花雕体验】06 搭建行空板开发环境之Thonny编程
  7. Python学习小组课程P4-Python办公(1)Excel保存
  8. 由于启用计算机,Win10怎么解决提示由于启动计算机时出现页面文件配置问题?
  9. 产品设计体会(7020)不做没理想的咸鱼“人要是没有理想,和咸鱼有什么区
  10. 神经网络 顾晓东_顾晓东