亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

給定線段line1(x1,y1)(x2,y2)和線段line2(x3,y3)(x4,y4),求兩線段

AaronYuan / 2972人閱讀

摘要:我的思路兩線段交點(diǎn)就是兩條線段相等的時(shí)候,也就是這個(gè)點(diǎn)既滿足又滿足。因?yàn)榻o了兩個(gè)點(diǎn),所以我們想到用斜截式來(lái)求出直線的方程式。因?yàn)樾苯厥讲粷M足即垂直于軸時(shí)。

我的思路
兩線段交點(diǎn)就是兩條線段相等的時(shí)候,也就是這個(gè)點(diǎn)既滿足line1又滿足line2。所以我們要先求出這兩條線段所在直線的方程式。因?yàn)榻o了兩個(gè)點(diǎn),所以我們想到用斜截式(y=kx+b)來(lái)求出直線的方程式。然后求出交點(diǎn)。再判斷這個(gè)點(diǎn)是否在兩條線段上(即判斷求出的x坐標(biāo)是否在x1x2,x3x4之間)。因?yàn)樾苯厥讲粷M足k=0(即垂直于x軸時(shí))。所以要在k=0時(shí)加一個(gè)判斷。
大致流程
設(shè)交點(diǎn)坐標(biāo)為(a,b)
求出兩線段所在直線的方程式(需求k1、b1、k2、b2) --> 將(a,b)代入方程利用與k1、b1、k2、b2的關(guān)系求出(a,b) --> 判斷特殊情況k=0 --> 判斷(a,b)是否在兩條線段上 --> 返回結(jié)果
let line1 = [{x1:0,y1:1},{x2:0,y2:-1}];
let line2 = [{x3:0,y3:-1},{x4:2,y4:1}];
function point(line1,line2){
    // 解構(gòu)賦值取得 x1,y1,x2,y2,x3,y3,x4,y4
    let [{x1,y1},{x2,y2}] = line1;
    let [{x3,y3},{x4,y4}] = line2;
    // 利用公式推導(dǎo)出 k、b和x、y的關(guān)系。
    let k1 = (y1-y2)/(x1-x2);
    let b1 = y1 - (k1*x1);
    let k2 = (y3-y4)/(x3-x4);
    let b2 = y3 - (k2*x3);
    // a、b 為交點(diǎn)坐標(biāo)
    let a;
    let b;
    // 判斷 k=0 時(shí)
    if(x1==x2){
        k1,b1 = 0;
        a = x1;
        b = k2*a + b2;
    }
    if(x3==x4){
        k2,b2 = 0;
        a = x3;
        b = k1*a + b1;
    }
    // 判斷 交點(diǎn) 是否在兩條線段上
    if(((a>x1&&ax2)||a==x1||a==x2)&&((a>x3&&ax4)||a==x3||a==x4)&&x1!=x2&&x3!=x4){
        a = (b2-b1)/(k1-k2);
        b = k1*a + b1;
    }
    // 返回結(jié)果
    let str;
    if(a!==undefined&&b!==undefined){
        str = `交點(diǎn)為(${a},$)`
    }else if((k1==k2)&&(b1==b2)&&(((x1==x3)&&(x2==x4))||((x1==x4)&&(x2==x3)))){
        str = "兩線段重合"
    }else if(k1==k2){
        str = "兩線段平行"
    }else{
        str = "兩線段不相交"
    }
    return str;
}
console.log(point(line1,line2))

可能有些繁瑣,希望有簡(jiǎn)單方法的可愛(ài)可以提出來(lái)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/102470.html

相關(guān)文章

  • 小豬喬治border-radius

    摘要:主要有以下幾個(gè)步驟找一張小豬喬治的圖片參考對(duì)圖片中的部分進(jìn)行分解,并逐一實(shí)現(xiàn)廢話其實(shí)掌握了后,這些步驟都不難了,細(xì)心繪制就可以完成啦。我繪制的小豬喬治如圖參考資料用畫小豬佩奇,你就是下一個(gè)社會(huì)人 概述 之前看了一篇關(guān)于用CSS來(lái)畫小豬佩奇的文章,抱著鍛煉自己的心態(tài)造了個(gè)輪子,畫了個(gè)佩奇的小弟喬治,效果可以看這里,源碼在這里。 開發(fā)過(guò)程中也讓我對(duì)border-radius這個(gè)屬性有了更深...

    guqiu 評(píng)論0 收藏0
  • Canvas 涂鴉

    摘要:第二步,消除涂鴉鋸齒的辦法簡(jiǎn)單的繪制和圖片保存完成了,但是在這種情況下,線條會(huì)有很明顯的鋸齒靈魂畫手來(lái)了。在經(jīng)過(guò)搜索查閱之后,發(fā)現(xiàn)有一個(gè)繪制辦法可以降低鋸齒的問(wèn)題。橡皮擦的原理是,將橡皮繪制的路徑覆蓋到原來(lái)的畫筆上。 第一步,我們先實(shí)現(xiàn)簡(jiǎn)單的繪制,并且在繪制之后將圖片保存到本地 var canvas = document.getElementById(canvas), ...

    thekingisalwaysluc 評(píng)論0 收藏0
  • 傳感與檢測(cè)實(shí)驗(yàn)報(bào)告,差動(dòng)變壓器的特性測(cè)定,江南大學(xué)物聯(lián)網(wǎng)自動(dòng)化

    摘要:線性回歸系數(shù)值線性回歸系數(shù)值用來(lái)記錄最大偏差尋找最大偏差最大偏差為求靈敏度靈敏度為求線性誤差非線性誤差為返回的系數(shù)公式返回常量系數(shù)系數(shù)公式求和求平方和返回對(duì)應(yīng)項(xiàng)相乘后的和區(qū)間區(qū)間區(qū)間區(qū)間 ...

    taowen 評(píng)論0 收藏0
  • 【JS圖形學(xué)基礎(chǔ)】平面向量的計(jì)算運(yùn)用實(shí)例

    摘要:平面向量的計(jì)算和運(yùn)用實(shí)例相關(guān)概念有向線段具有方向的線段叫做有向線段,以為起點(diǎn),為終點(diǎn)的有向線段記作或向量的模有向線段的長(zhǎng)度叫做向量的模,記作零向量長(zhǎng)度等于的向量叫做零向量,記作或。 平面向量的計(jì)算和運(yùn)用實(shí)例 相關(guān)概念 有向線段:具有方向的線段叫做有向線段,以A為起點(diǎn),B為終點(diǎn)的有向線段記作 或AB; 向量的模:有向線段AB的長(zhǎng)度叫做向量的模,記作|AB|; 零向量:長(zhǎng)度等于0的向量...

    khs1994 評(píng)論0 收藏0
  • Perfect Rectangle

    摘要:首先確定上下的邊界,左右線段按照橫坐標(biāo)排序。檢查填充滿上圖的情況就組成不了一個(gè)長(zhǎng)方形。找重合和有空隙只需要把所有橫坐標(biāo)在的線段排序之后檢查首位相連,且起點(diǎn),終點(diǎn)。且最后成的面積等于小矩形的面積和。 Perfect Rectangle 題目鏈接:https://leetcode.com/problems... 掃描線,哪個(gè)方向都行。我是從左往右掃,矩陣按照左右的邊來(lái)存。showImg(h...

    SolomonXie 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<