关于四边形各种形状的判断

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

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

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;
满足菱形,长方形就是正方形


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值