[英]Calculate point, from point, at given angle
我正在嘗試使用 svg 和 JavaScript 創建“牆”。 我需要根據配置的值加厚牆壁,並以給定的角度適當地斜接角落。 下圖描述了這一點。
我的應用程序的 svg 編輯器部分允許我繪制第 1 行和第 2 行(藍色),並以不同的角度連接它們的端點。 下圖顯示了一個 90 度角,但該角度是用戶根據繪制的線條定義的,所以它可以是任何東西。
我已經能夠通過數學計算確定一個質心點,它允許我平分用戶定義的角度並創建一條斜接線,如下所示,它是一條具有端點 d 和 c 的線。 根據我的計算,我知道四個綠點和綠角,以及第 1 行和第 3 行之間的已知且可配置的距離(此處未定義,但假設它為 5 個 svg 單位),順便說一句,這將始終是平行的。
在這個例子中,新牆由第 1 行(牆的內部)、第 3 行(牆的外部)和連接第 1 行和第 3 行的斜接線組成。我假設答案在第 1 行和第 3 行之間的距離,以及平分線的角度(端點 d 和 c),但我無法確定數學。
我如何找到 x?
有沒有更簡單的方法來 go 關於這個,或者我對三角的了解比我想象的還要少(順便說一句,很少)。 提前致謝。
畢達哥拉斯: A**2
+ B**2
= C**2
- 意思是(5 svg 平方)+(5 svg 平方)=(C -> X)平方。 這為您提供了與 C->X 的距離,並且您已經有了綠色角度。
你必須決定你想要的精確度(小數位數)。
說從第 1 行到第 3 行的距離 == 5;
const A = 5; const length = Math.sqrt((A * A) + (A * A)); console.log(length);
要從 C -> X 延長斜接線:
綠角的一半,因為 D 和線 1 之間的假想線與線 1 和線 3(以及延伸的 X 的交點)成直角。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.