摘要:我的思路兩線段交點就是兩條線段相等的時候,也就是這個點既滿足又滿足。因為給了兩個點,所以我們想到用斜截式來求出直線的方程式。因為斜截式不滿足即垂直于軸時。
我的思路
兩線段交點就是兩條線段相等的時候,也就是這個點既滿足line1又滿足line2。所以我們要先求出這兩條線段所在直線的方程式。因為給了兩個點,所以我們想到用斜截式(y=kx+b)來求出直線的方程式。然后求出交點。再判斷這個點是否在兩條線段上(即判斷求出的x坐標是否在x1和x2,x3和x4之間)。因為斜截式不滿足k=0(即垂直于x軸時)。所以要在k=0時加一個判斷。大致流程
設交點坐標為(a,b)
求出兩線段所在直線的方程式(需求k1、b1、k2、b2) --> 將(a,b)代入方程利用與k1、b1、k2、b2的關系求出(a,b) --> 判斷特殊情況k=0 --> 判斷(a,b)是否在兩條線段上 --> 返回結果
let line1 = [{x1:0,y1:1},{x2:0,y2:-1}]; let line2 = [{x3:0,y3:-1},{x4:2,y4:1}]; function point(line1,line2){ // 解構賦值取得 x1,y1,x2,y2,x3,y3,x4,y4 let [{x1,y1},{x2,y2}] = line1; let [{x3,y3},{x4,y4}] = line2; // 利用公式推導出 k、b和x、y的關系。 let k1 = (y1-y2)/(x1-x2); let b1 = y1 - (k1*x1); let k2 = (y3-y4)/(x3-x4); let b2 = y3 - (k2*x3); // a、b 為交點坐標 let a; let b; // 判斷 k=0 時 if(x1==x2){ k1,b1 = 0; a = x1; b = k2*a + b2; } if(x3==x4){ k2,b2 = 0; a = x3; b = k1*a + b1; } // 判斷 交點 是否在兩條線段上 if(((a>x1&&ax2)||a==x1||a==x2)&&((a>x3&&a x4)||a==x3||a==x4)&&x1!=x2&&x3!=x4){ a = (b2-b1)/(k1-k2); b = k1*a + b1; } // 返回結果 let str; if(a!==undefined&&b!==undefined){ str = `交點為(${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))
可能有些繁瑣,希望有簡單方法的可愛可以提出來。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102470.html
摘要:主要有以下幾個步驟找一張小豬喬治的圖片參考對圖片中的部分進行分解,并逐一實現廢話其實掌握了后,這些步驟都不難了,細心繪制就可以完成啦。我繪制的小豬喬治如圖參考資料用畫小豬佩奇,你就是下一個社會人 概述 之前看了一篇關于用CSS來畫小豬佩奇的文章,抱著鍛煉自己的心態造了個輪子,畫了個佩奇的小弟喬治,效果可以看這里,源碼在這里。 開發過程中也讓我對border-radius這個屬性有了更深...
摘要:第二步,消除涂鴉鋸齒的辦法簡單的繪制和圖片保存完成了,但是在這種情況下,線條會有很明顯的鋸齒靈魂畫手來了。在經過搜索查閱之后,發現有一個繪制辦法可以降低鋸齒的問題。橡皮擦的原理是,將橡皮繪制的路徑覆蓋到原來的畫筆上。 第一步,我們先實現簡單的繪制,并且在繪制之后將圖片保存到本地 var canvas = document.getElementById(canvas), ...
摘要:線性回歸系數值線性回歸系數值用來記錄最大偏差尋找最大偏差最大偏差為求靈敏度靈敏度為求線性誤差非線性誤差為返回的系數公式返回常量系數系數公式求和求平方和返回對應項相乘后的和區間區間區間區間 ...
摘要:平面向量的計算和運用實例相關概念有向線段具有方向的線段叫做有向線段,以為起點,為終點的有向線段記作或向量的模有向線段的長度叫做向量的模,記作零向量長度等于的向量叫做零向量,記作或。 平面向量的計算和運用實例 相關概念 有向線段:具有方向的線段叫做有向線段,以A為起點,B為終點的有向線段記作 或AB; 向量的模:有向線段AB的長度叫做向量的模,記作|AB|; 零向量:長度等于0的向量...
摘要:首先確定上下的邊界,左右線段按照橫坐標排序。檢查填充滿上圖的情況就組成不了一個長方形。找重合和有空隙只需要把所有橫坐標在的線段排序之后檢查首位相連,且起點,終點。且最后成的面積等于小矩形的面積和。 Perfect Rectangle 題目鏈接:https://leetcode.com/problems... 掃描線,哪個方向都行。我是從左往右掃,矩陣按照左右的邊來存。showImg(h...
閱讀 1356·2021-11-15 11:45
閱讀 3123·2021-09-27 13:36
閱讀 2867·2019-08-30 15:54
閱讀 984·2019-08-29 12:38
閱讀 2905·2019-08-29 11:22
閱讀 2983·2019-08-26 13:52
閱讀 2026·2019-08-26 13:30
閱讀 584·2019-08-26 10:37