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