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

英文b2c网站建设百度网页网址

英文b2c网站建设,百度网页网址,phpcms网站备份,网站建设属于硬件还是软件考虑一个矩形 ABCD,我们给出了边 AD 和 BC 中点(分别为 p 和 q)的坐标以及它们的长度 L(AD BC L)。现在给定参数,我们需要打印 4 个点 A、B、C 和 D 的坐标。 例子: 输入:p (1,…

         考虑一个矩形 ABCD,我们给出了边 AD 和 BC 中点(分别为 p 和 q)的坐标以及它们的长度 L(AD = BC = L)。现在给定参数,我们需要打印 4 个点 A、B、C 和 D 的坐标。

例子: 

输入:p = (1, 0)
        q = (1, 2)
        L = 2

输出:(0,0),(0,2),(2,2),(2,0)

解释:

打印的点形成一个矩形,

满足输入约束。

输入:p = (1, 1)
        q = (-1, -1)
        L = 2*sqrt(2)

输出:(0,2),(-2,0),(0,-2),(2,0)

从问题陈述中可能出现 3 种情况:  

矩形是水平的,即 AD 和 BC 平行于 X 轴

矩形是垂直的,即 AD 和 BC 平行于 Y 轴

矩形与轴线呈一定角度倾斜

        前两种情况很简单,使用基本几何学就可以轻松解决。对于第三种情况,我们需要应用一些数学概念来找到点。

        为了清楚起见,请考虑上图。我们有 p 和 q 的坐标。因此,我们可以找到 AD 和 BC 的斜率(因为 pq 垂直于 AD)。一旦我们有了 AD 的斜率,我们就可以找到通过 AD 的直线方程。现在我们可以应用距离公式来获得沿 X 轴和 Y 轴的位移。 

如果 AD 的斜率 = m,则 m = (px- qx)/(qy- py)

以及沿 X 轴的位移,dx = L/(2*sqrt(1+m*m))

类似地,dy = m*L/(2*sqrt(1+m*m))

现在,我们可以通过简单地加减相应获得的位移来找到 4 个角的坐标。 

下面是实现过程:

// Javascript program to find corner points of 
// a rectangle using given length and middle 
// points. 
 
// Structure to represent a co-ordinate point 
class Point 
{
    constructor(a,b)
    {
        this.x=a;
        this.y=b;
    }
}
 
// This function receives two points and length 
    // of the side of rectangle and prints the 4 
    // corner points of the rectangle 
function printCorners(p,q,l)
{
    let a = new Point(), b = new Point(),
                c = new Point(), d = new Point();
   
        // horizontal rectangle 
        if (p.x == q.x) 
        {
            a.x =  (p.x - (l / 2.0));
            a.y = p.y;
   
            d.x =  (p.x + (l / 2.0));
            d.y = p.y;
   
            b.x =  (q.x - (l / 2.0));
            b.y = q.y;
   
            c.x =  (q.x + (l / 2.0));
            c.y = q.y;
        } 
        // vertical rectangle 
        else if (p.y == q.y)
        {
            a.y = (p.y - (l / 2.0));
            a.x = p.x;
   
            d.y = (p.y + (l / 2.0));
            d.x = p.x;
   
            b.y = (q.y - (l / 2.0));
            b.x = q.x;
   
            c.y = (q.y + (l / 2.0));
            c.x = q.x;
        } 
        // slanted rectangle 
        else
        {
            // calculate slope of the side 
            let m = (p.x - q.x) / (q.y - p.y);
   
            // calculate displacements along axes 
            let dx =  ((l / Math.sqrt(1 + (m * m))) * 0.5);
            let dy = m * dx;
   
            a.x = p.x - dx;
            a.y = p.y - dy;
   
            d.x = p.x + dx;
            d.y = p.y + dy;
   
            b.x = q.x - dx;
            b.y = q.y - dy;
   
            c.x = q.x + dx;
            c.y = q.y + dy;
        }
   
        document.write(a.x + ", " + a.y + " <br>"
                + b.x + ", " + b.y + "<br>"
                + c.x + ", " + c.y + " <br>"
                + d.x + ", " + d.y + "<br>");
}
 
// Driver code 
let p1 = new Point(1, 0), q1 = new Point(1, 2);
printCorners(p1, q1, 2);
 
let p = new Point(1, 1), q = new Point(-1, -1);
printCorners(p, q,  (2 * Math.sqrt(2)));
 
// This code is contributed by rag2127 

输出: 

0,0
0、2
2,2
2,0

0、2
-2,0
0、-2
2,0

时间复杂度: O(1) 

辅助空间: O(1)

http://www.fp688.cn/news/144416.html

相关文章:

  • 珠海市网站建设公司推广资源seo
  • 深圳罗湖网站设计搭建网站
  • 网站建设发布设需求抖音seo搜索引擎优化
  • 烟台网站制作手机端seo
  • 做直播网站宽带朋友圈营销
  • 国内做网站的公司二级域名网址查询
  • 江苏神禹建设有限公司网站资源网站优化排名软件公司
  • 宿迁网站建设报价各大搜索引擎提交入口
  • 天津网站建设座机号灰色行业怎么推广引流
  • 怎样做联盟网站想做电商怎么入手
  • 外贸网站建设怎么制作聊城seo整站优化报价
  • 网站制作源码百度关键词优化推广
  • 深圳公司 网站建设香港疫情最新情况
  • 网站管理建站搜索引擎优化策略不包括
  • 教你做吃的网站江门seo网站推广
  • 大理公司网站建设百度推荐现在为什么不能用了
  • 网站成本网站流量统计
  • 北京校园网站建设种子资源
  • 做文案看什么网站在运营中seo是什么意思
  • 素材网站的图可以做海报吗百度竞价关键词价格查询工具
  • 个人主体可以做网站吗百度收录怎么查询
  • 做新疆网站应该做哪方面的长沙网站推广和优化
  • 重庆江北营销型网站建设公司推荐山东seo推广
  • 网站详情页怎么做成品网站1688入口网页版怎样
  • 深圳网页制作培训课程价格c盘优化大师
  • 企业网站建设机构网络营销和传统营销的区别和联系
  • 做私服网站要多大空间什么搜索引擎搜索最全
  • 做网站书seo商学院
  • 网站收录提交入口怎么做西安百度快速排名提升
  • 自己给网站做优化怎么做百度搜索推广操作简要流程