判断正方形方法:三个条件同时满足(1:四条边相等,2:边不为0,3:有一个直角)

判断矩形的话就是条件1变为有2对边相等

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
double eps=1e-6;
struct point
{double x, y;
} a[4];bool cmp(point a, point b)
{if (a.x != b.x)return a.x < b.x; //如果,横坐标不相等,所有点按横坐标升序排列return a.y < b.y;//如果横坐标相等,所有点按纵坐标升序排列
}double TwoPointDiatance(point a, point b)//计算两点之间的距离
{return sqrt(pow((a.x - b.x), 2) + pow((a.y - b.y), 2));
}bool IsRightAngle(point a, point b, point c)//判断是否为直角
{double x;x = (a.x - b.x)* (a.x - c.x) + (a.y - b.y)*(a.y - c.y);if (fabs(x)<eps)return 1;elsereturn 0;
}int main()
{int t, k;double s1, s2, s3, s4;cout << "请输入您想要玩的次数: ";cin >> t;cout << "输入4个点的坐标:" << endl;while (t--){for (int i = 0; i < 4; i++)cin >> a[i].x >> a[i].y;//确定点,排序,给点确定标号sort(a, a + 4, cmp);//确定边s1 = TwoPointDiatance(a[0], a[2]);s2 = TwoPointDiatance(a[0], a[1]);s3 = TwoPointDiatance(a[3], a[1]);s4 = TwoPointDiatance(a[2], a[3]);//分析是否为正方形if (s1 == s2&&s3 == s4&&s1 == s3&&s1 != 0 && IsRightAngle(a[0], a[1], a[2]))//三个条件同时满足(1:四条边相等,2:边不为0,3:有一个直角)cout << "Yes" << endl;elsecout << "No" << endl;cout << "还剩 " << t << " 次。" << endl;cout << "输入4个点的坐标:" << endl;}return 0;
}
/*
几组正方形测试坐标:
0 1 1 1 1 0 0 00 2 3 -2 -1 -5 -4 -10 4 4 7 7 3 3 00 1 1 6 5 0 6 5
*/

C++判断四个点能否构成正方形/矩阵相关推荐

  1. 判断四个点是不是组成正方形

    判断四个点是不是组成正方形 给出几组数,每组的第一行为横坐标,第二行为纵坐标.看其是否组成正方形 代码 #coding=utf-8 import sys if __name__ == "__ ...

  2. C++判断四个点能否构成正方形

    参考博客https://blog.csdn.net/yangkunpengD/article/details/51329115 对其进行了修改,思路大致一样. 判断方法:三个条件同时满足(1:四条边相 ...

  3. c语言长和宽判断是否是正方形,C++ 如何判断四个点是否构成正方形

    判断方法分为两步: 1.判断四条边是否相等: 2.判断是否有一个角为直角: 求解两点之前距离的函数: double Distance(int x1,int y1,int x2,int y2){ ret ...

  4. [编程]C++判断四个点能否构成正方形

    方法一: 判断方法:三个条件同时满足(1:四条边相等,2:边不为0,3:有一个直角) https://blog.csdn.net/qq_29567701/article/details/7967673 ...

  5. 算法练习day8——190326(猫狗队列、转圈打印矩阵、旋转正方形矩阵、反转单向双向链表、数N的加法组合)

    1.猫狗队列 [题目] 宠物. 狗和猫的类如下: public class Pet {private String type;public Pet(String type) {this.type = ...

  6. 数据结构与算法之转圈打印矩阵和旋转正方形矩阵

    数据结构与算法之转圈打印矩阵和旋转正方形矩阵 目录 转圈打印矩阵 旋转正方形矩阵 1. 转圈打印矩阵 题目描述 代码实现 public class Code_PrintMatrixSpiralOrde ...

  7. 将正方形矩阵顺时针转动90度(Java)

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net package live.every.day.Pro ...

  8. 2018东北四省赛 Store The Matrix (矩阵)

    2018东北四省赛 Store The Matrix (矩阵) 题目描述 Given a matrix M with r rows and c columns. It is obviously tha ...

  9. c语言判断四个坐标点正方形,四个坐标点判断是否为正方形

    四个坐标点判断是否为正方形 在做ACM题目的时候,遇到了要求输入四个点的坐标,然后判断这四个点能否构成一个正方形.这个看似很简单,但细节方面还是有许多问题的.我想的方法很容易理解,而且一次就AC了. ...

最新文章

  1. [Groovy] Groovy API
  2. JS基础篇--函数声明与定义,作用域,函数声明与表达式的区别
  3. 学计算机激励标语口号,激励学习的口号
  4. python 列表为空报错_对比几段代码,看看你是 Python 菜鸟还是老鸟
  5. 由H3C高层变动对厂商认证的思考
  6. python中plot不能显示标签_解决python中使用plot画图,图不显示的问题
  7. 注:以前我的博客,因为丢了用户名和口令,无法使用,声明作废;现转于此。...
  8. 【16年浙江省赛 B ZOJ 3937】More Health Points【树上dfs、斜率优化dp、动态维护下凸壳】
  9. OpenCV使用BGR而非RGB格式
  10. 汉语是世界上唯一一种面向对象的高级语言【转】
  11. 坐南京13路公交车,体验《头文字D》感觉!
  12. halcon学习实战系列—如何更便捷,更高效的计算同心度
  13. 2022.03.03【微生物】|比对后去宿主分析
  14. MW7299/PD+HUB2.0集成芯片上行支持PD3.0协议下行HUB支持BC1.2协议QFN32封装
  15. liquibase(数据库管理)
  16. java实现excel的模板导出
  17. 2019年10月8日股市走势预测——06
  18. android中如何显示图片的一部分
  19. 运输层---运输层概述 UDP协议与TCP协议
  20. 词向量 其实就是 语义映射矩阵

热门文章

  1. 天野第四期易语言半内存辅助培训课程
  2. SPSS(三)统计分析方法体系----一幅图教你如何快速选用合适的模型
  3. 万能码码上新天地(安全扫码专业委员会)
  4. 从心理学角度谈谈如何更有效的学习
  5. GetDC、ReleaseDC、CreateSolidBrush、SelectObjec、DeleteObject、Rectangle、Ellipse在窗体上进行绘图的函数和绘图步骤说明
  6. 《深入浅出图神经网络--GNN原理解析》一些概念【待整理完】
  7. excel文件已经损坏怎么办
  8. ClickHouse 四舍五入函数
  9. 瑞芯微 TB-RK3399Pro -- AI平台解决方案介绍
  10. 几个小技巧提升微课制作效率