当前位置: 首页 > wzjs >正文

网站地图制作怎么做宁夏考试教育网站

网站地图制作怎么做,宁夏考试教育网站,百度推广做网站,模板自助建站给定平面上四个点的坐标,判断这四个点是否形成正方形。 要检查正方形,我们需要检查以下内容: a) 由点形成的所有四条边都相同。 b) 任何两条边之间的角度都是 90 度。(此条件是必需的,因为菱形 也有相同的边&am…

 给定平面上四个点的坐标,判断这四个点是否形成正方形。 

要检查正方形,我们需要检查以下内容:
        a) 由点形成的所有四条边都相同。
        b) 任何两条边之间的角度都是 90 度。(此条件是必需的,因为菱形 也有相同的边)
        c) 检查两条对角线的距离是否相同.

例子:

输入: p1 = { 20, 10 }, p2 = { 10, 20 }, p3 = { 20, 20 }, p4 = { 10, 10 }
输出: 是
解释: 

输入: p1 = { 20, 20 }, p2 = { 10, 20 }, p3 = { 20, 20 }, p4 = { 10, 10 }
输出: 否 

        方法:思路是选取任意一点并计算其与其余点的距离。设选取的点为“p”。要形成正方形,两个点与“p”的距离必须相同,设该距离为 d。与一个点的距离必须不同于 d,并且必须等于 d 的 2 倍。设距离不同的这个点为“q”。 

        上述条件还不够好,因为距离不同的点可能在另一侧。我们还需要检查 q 是否与其他 2 个点的距离相同,并且该距离与 d 相同。

以下是上述想法的实现:

// JavaScript program to check if four given points form a square or not.
 
// A utility function to find square of distance
// from point 'p' to point 'q'
function distSq( p, q){
    return (p.x - q.x) * (p.x - q.x) + (p.y - q.y) * (p.y - q.y);
}
 
// This function returns true if (p1, p2, p3, p4) form a
// square, otherwise false
function isSquare(p1,  p2,  p3, p4){
    let d2 = distSq(p1, p2); // from p1 to p2
    let d3 = distSq(p1, p3); // from p1 to p3
    let d4 = distSq(p1, p4); // from p1 to p4
 
    if (d2 == 0 || d3 == 0 || d4 == 0)    
        return false;
 
    // If lengths if (p1, p2) and (p1, p3) are same, then
    // following conditions must met to form a square.
    // 1) Square of length of (p1, p4) is same as twice
    // the square of (p1, p2)
    // 2) Square of length of (p2, p3) is same
    // as twice the square of (p2, p4)
 
    if (d2 == d3 && 2 * d2 == d4
        && 2 * distSq(p2, p4) == distSq(p2, p3)) {
        return true;
    }
 
    // The below two cases are similar to above case
    if (d3 == d4 && 2 * d3 == d2
        && 2 * distSq(p3, p2) == distSq(p3, p4)) {
        return true;
    }
    if (d2 == d4 && 2 * d2 == d3
        && 2 * distSq(p2, p3) == distSq(p2, p4)) {
        return true;
    }
 
    return false;
}
 
// Driver program to test above function
let p1 = { x:20, y:10 }
let p2 = { x:10, y:20 }
let p3 = { x:20, y:20 }
let p4 = { x:10, y:10 }
isSquare(p1, p2, p3, p4) ? document.write("Yes") : document.write("No");
 
// This code is contributed by rohitsingh07052. 

输出:

时间复杂度: O(1),所有操作都在 O(1) 常数时间内执行。

辅助空间: O(1),不需要额外空间

扩展: 检查四个线段是否形成一个矩形
JavaScript:https://blog.csdn.net/hefeng_aspnet/article/details/145686594
C#:https://blog.csdn.net/hefeng_aspnet/article/details/145686569
Python:https://blog.csdn.net/hefeng_aspnet/article/details/145686543
Java:https://blog.csdn.net/hefeng_aspnet/article/details/145686509
C++:https://blog.csdn.net/hefeng_aspnet/article/details/145686317 

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 

http://www.dtcms.com/wzjs/592606.html

相关文章:

  • 织梦 调用网站地址网站百度排名查询
  • 广东企业移动网站建设哪家好北京网站设计公司新鸿儒
  • 织梦网站搬家工具建设网站大概要花多少钱
  • 国内全屏网站有哪些重庆市建设工程信息网官网网址
  • 自己做外贸网站能接到单吗c网站开发源代码
  • 做网站都需要服务器吗网站关键词优化网站推广
  • 阿里巴巴国际网站首页视频怎么做具有口碑的柳州网站建设公司
  • 西安加盟代理网站建设上海做网站优化哪家好
  • 网站层次索引模板计算机应用网站建设与维护是做什么
  • 帮忙做公司网站哪个网站可以哪些企业做哪些产品
  • access网站开发wordpress进不来后台
  • 购买网站空间ftp设计海纳企业网站管理系统源码
  • 个人网站如何搭建男科
  • 做字体的网站asp文件怎么做网站
  • 网络公关公司排名广州网站优化公司咨询
  • html5手机网站网页设计与制作设计网页源文件
  • 网站不备案备案公司网站备案需要多久
  • 网站建设的教学设计做海淘的网站
  • 鄂尔多斯网架公司郑州seo关键词优化公司
  • 期货融网站建设做足球经理头像的网站
  • 不同风格的网页江西短视频搜索seo推荐
  • 南通技嘉做网站wordpress直接上传视频
  • 网站精神文明建设专栏云设计工具
  • 怎么做pdf电子书下载网站wordpress4.5
  • 建设部网站预应力资质山西建设工程造价管理协会网站
  • seo神马网站推广器网络规划与设计实用教程
  • 家居企业网站建设公司电商网站开发公司杭州
  • 网站投资设计郑州百度推广代运营公司
  • 网站的百度百科怎么做网站后台维护一般要怎么做
  • 网站建设座谈会做购物网站的步骤