在比赛中常常会出现根据四个点来判断这四个点构成四边形的形状

按照顺时针给出,(有时因为斜率的不存在,所以处理要小心点,下面给出一些处理,避免斜率的问题)

x[4],y[4];

1.

平行四边形

两条边两两平行

 int a = (y[1] - y[0]) * (x[3] - x[2]);
18     int b = (x[1] - x[0]) * (y[3] - y[2]);
19     if(a != b) return false;
20     a = (x[2] - x[1]) * (y[3] - y[0]);
21     b = (x[3] - x[0]) * (y[2] - y[1]);
22     return a == b;

在四边形的基础上判断菱形,长方形,正方形

2.菱形

对角线,相互垂直//避免出现斜率不存在的情况

 int a = (y[0] - y[2]) * (y[1] - y[3]);
35     int b = (x[1] - x[3]) * (x[0] - x[2]);
36     return a == -b;

3.长方形

对角线,相等

int a = (x[0] - x[2]) * (x[0] - x[2]) + (y[0] - y[2]) * (y[0] - y[2]);
28     int b = (x[1] - x[3]) * (x[1] - x[3]) + (y[1] - y[3]) * (y[1] - y[3]);
29     return a == b;

满足菱形,长方形就是正方形

关于四边形各种形状的判断相关推荐

  1. 类和对象总结及用法 计算点到点距离 线与线的关系 计算三角形平行四边形面积周长 判断形状

    1.类和对象简介 类和对象的关系:类是对象的抽象,而对象是类的特例,即类的具体表现形式. 类和对象的区别:类是对象的模板,类是抽象的不占用内存,对象是具体的,占用储存空间. 类中主要包括数据和成员函数 ...

  2. 给定三角形三边,如何判断该三角形的形状

    给定三角形三边,如何判断该三角形的形状 1.前言 2.公式介绍 3.公式推导 1.前言 我们都知道,三角形可分为直角三角形.锐角三角形.钝角三角形三种形状,而判断一个三角形具体为哪种形态,可以通过分析 ...

  3. Python+Opencv颜色和形状检测

    目录 一.场景需求解读 二.算法原理简介 三.算法实现步骤 四.算法代码实现 五.算法效果展示与分析 参考资料 注意事项 一.场景需求解读   现实场景中,我们有时需要自动的检测出图片中目标的颜色和其 ...

  4. HTML矩形与矩形、圆形与圆形、矩形与圆形元素的碰撞判断与动画

    1. 矩形与矩形 判断两个矩形是否碰撞,判断条件:d1Right > d2Left && d1Bottom > d2Top && d1Left < d ...

  5. 四边形不等式优化dp

    有关于四边形不等式的优化 https://blog.csdn.net/noiau/article/details/72514812 这篇博客有描述的足够清楚,我觉得自己肯定写不了这么好的博客所以放在这 ...

  6. 四个角不是直角的四边形_四边形的特点是有四条直的边和四个直角对吗

    四边形的特点是有四条直的边和四个直角对吗2020-12-14 10:28:21文/董玉莹 四边形都有四条直的边,四个直角.这个命题是错误的.由不在同一直线上的四条线段依次首尾相接围成的封闭的平面图形叫 ...

  7. 计算不规则四边形的面积+代码实现

    求两点间距离 /***** 求两点间距离*****/ float getDistance(CvPoint pointO, CvPoint pointA) {float distance;distanc ...

  8. 判断图像中的三角形,圆形和矩形

    这是我自己做作业的时候写的一点东西,判断一张图片中的形状(图片如下,放到其他图片的话可能就不适用了),所以仅供参考,自己水平确实比较低,希望大家不喜勿喷~ 我们使用的图片如下: 结果如下: 下面稍微介 ...

  9. python颜色形状识别_Python学习(10)Python+Opencv颜色和形状检测

    目录 一.场景需求解读 现实场景中,我们有时需要自动的检测出图片中目标的颜色和其对应的形状,然后根据这些信息快速的找到我们需要的目标,这在真实场景中具有广泛的应用.下图展示了一张实例,我们需要知道图片 ...

最新文章

  1. QIIME 2用户文档. 14数据评估和质控Evaluating and controlling(2019.7)
  2. 人工神经网络基本特点
  3. NSTimer循环引用的问题
  4. 在C/C++中嵌入Python
  5. scatter的用法 随机颜色_plt.scatter画分类月亮湾散点图
  6. 谁是颠覆者?最全盘点25条区块链主链
  7. java nashorn maven_使用mvn创建java工程的极简教程
  8. python 进度条_6种酷炫Python运行进度条
  9. 计算机 教育 初中 论文范文1000字,初中作文1000字
  10. 9I DATAGUARD备库的MRP0进程shutdown
  11. C语言解释器的实现--让脚本跑起来(六)
  12. linux运行多线程语句,linux多线程中使用system函数后时而程序崩溃,求助!!!...
  13. APM-Skywalking调研及实施报告
  14. EXCEL工作表保护密码破解
  15. mysql有next_day用法_Next_day()函数的用法
  16. 求解立方根 java
  17. Istio:服务发现和Pilot的架构机制
  18. com.netflix.client.ClientException: load balancer doer not hava available server for client: XXX 的报错
  19. RAR Extractor - The Unarchiver Pro for mac(解压缩软件)v6.3.5激活版
  20. 软件开发人员为什么不愿意写文档

热门文章

  1. c#语言float转换int,c#中怎么把int向float型转换?
  2. 利用 scp 远程上传下载文件/文件夹
  3. unc 目录不受支持_[Bat]UNC路径不支持的2种解决方法
  4. 【NLP】Task2 数据读取与数据分析
  5. 爬取通达信官网上假日休市数据
  6. Mapstruct 使用教程
  7. C语言:表达式求值详解
  8. 实现树莓派homeassistant OS远程控制内网穿透--ddnsto教程
  9. echarts 图例(legend icon)图标自定义的几种方式
  10. 英国访问学者AV签证申请办理注意事项有哪些?