enter image description here 我需要使用手指的位置繪製第一行。 後來我需要使用手指位置繪製第二條平行線。 我已經做到了。 而主要任務是繪製這些平行線之間的第三條垂直線。 如何繪製第三行?如何在兩條其他平行線之間繪製直線?
-3
A
回答
0
如果你有2條平行線,並希望在二者之間畫垂線,您將需要額外的1點。假設這個點位於第一行的中間(稱之爲C
)。
此外,假設我們有以下幾點:
L1 // Represents the first line
L2 // Represents the second line
L1.start // Represents the line start point CGPoint
L1.end // Represents the line end point CGPoint
現在要畫垂直線到第一線L1
和這樣做,你將需要得到它的normal
這是在2D非常簡單。首先通過減去給定線的起點和終點direction = CGPoint(x: L1.end.x-L1.start.x, y: L1.end.y-L1.start.y)
獲得線方向。我們得到正常的,我們只需要翻轉座標和方向的長度將它們劃分:
let length = sqrt(direction.x*direction.x + direction.y*direction.y)
let normal = CGPoint(x: -direction.y/length, y: direction.x/length) // Yes, normal is (-D.y, D.x)
,以便在所述起點爲C
現在我們只需要找到另一條線路上是C + normal*distanceBetweenLines
終點。因此,我們需要
首先應通過點積來獲得最好的兩條線之間的距離......我們需要從兩行的任何一對點(在第一線的一個點,並在另一個之間的矢量第二行)。因此,讓我們
let between = CGPoint(x: L1.start.x-L2.start.x, y: L1.start.y-L2.start.y)
現在我們需要項目這條線正常,點產品,以獲得投影的長度是兩線
let distanceBetweenLines = between.x*normal.x + between.y*normal.y
之間的長度。
所以,現在我們擁有所有的點來繪製2條給出線假設線之間的垂直線是平行的:
L3.start = C
L3.end = CGPoint(x: C.x + normal.x*distanceBetweenLines, y: C.y + normal.y*distanceBetweenLines)
相關問題
- 1. 繪製直線的線條
- 2. 在兩個方塊之間繪製平行線
- 3. 如何在兩條線之間繪製陰影區域
- 4. 如何在兩個圓圈之間動態繪製線條
- 5. 如何用ggplot2在兩條線之間繪製密度圖?
- 6. 在兩條曲線之間繪圖
- 7. 如何在matlab中繪製一條直線的垂直平分線?
- 8. 如何在ggplot2中繪製兩條線
- 9. 如何找到兩條平行線段之間的垂直距離?
- 10. 如何在繪圖函數的任意兩點之間繪製一條線?
- 11. chart.js之 - 繪製水平線
- 12. 繪製一條平均曲線的直線
- 13. 如何在滑塊上繪製線條或其他東西?
- 14. 在兩個對象之間繪製線條
- 15. 在兩個可拖動div之間繪製一條線
- 16. 在兩個3D點之間繪製一條弧線
- 17. flash as3在兩個圓圈之間繪製一條線
- 18. 兩點之間繪製曲線
- 19. 如何在兩條直線android之間放置文本?
- 20. 如何用兩條斜線繪製一條線使用python
- 21. 如何使用css在兩個選項框之間繪製垂直線
- 22. 畫線用兩條平行線連接兩條平行線的末端
- 23. 如何在ListBoxItems之間繪製一條線
- 24. 如何在條形圖上繪製軸之間的虛線android
- 25. 如何在多個圖像之間繪製線條
- 26. 在iPhone的UITextView上繪製直線條
- 27. 如何在android中的兩點之間繪製線
- 28. 如何在CloudMade上的兩個位置之間繪製路線
- 29. 如何在iPhone中的兩個位置之間繪製路線?
- 30. 如何刪除在兩個標籤之間繪製的線
那麼,有什麼問題,不是做一些陳述之外? –
這是一個關於(Swift)編程或關於幾何/數學的問題嗎? –
@ElTomato如何繪製平行線之間的垂直線? – kvv