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. Pyshp:PolyLineZ繪圖在我的線條之間繪製線條
- 4. 如何在兩條線之間繪製陰影區域
- 5. 如何在兩個圓圈之間動態繪製線條
- 6. 如何在opencv C++中的兩點之間繪製一條線
- 7. 如何在兩個圖像佈局之間繪製線條
- 8. 如何在javascript中的兩條線之間繪製角度
- 9. 如何在兩個DataGridView控件之間繪製線條
- 10. 在兩條曲線之間繪圖
- 11. 如何在matlab中繪製一條直線的垂直平分線?
- 12. 我如何繪製兩點之間的直線OSM
- 13. 如何在兩條平行線WPF之間設置填充?
- 14. 如何在間隔條形圖中繪製水平和垂直線條 - oxyplot - WPF
- 15. 如何使用GeneralPath繪製兩條平行線
- 16. jvectormap:在標記之間繪製線條?
- 17. 如何繪製兩個因子變量之間的多條線
- 18. 如何在「android水平進度條」中繪製垂直線
- 19. 如何在ggplot2中繪製兩條線
- 20. 繪製平行線
- 21. 如何找到兩條平行線段之間的垂直距離?
- 22. 如何在繪圖函數的任意兩點之間繪製一條線?
- 23. 如何在android中繪製平行線
- 24. chart.js之 - 繪製水平線
- 25. 繪製一條平均曲線的直線
- 26. 在貝塞爾曲線之間繪製垂直線
- 27. 如何在滑塊上繪製線條或其他東西?
- 28. 在兩個可拖動div之間繪製一條線
- 29. flash as3在兩個圓圈之間繪製一條線
- 30. 在兩個3D點之間繪製一條弧線
那麼,有什麼問題,不是做一些陳述之外? –
這是一個關於(Swift)編程或關於幾何/數學的問題嗎? –
@ElTomato如何繪製平行線之間的垂直線? – kvv