Swift 如何通过编程找到点和线之间的距离?

Swift 如何通过编程找到点和线之间的距离?,swift,math,Swift,Math,我发现了一些类似的东西,给了我一条线的一般形式,但写出来后,我遇到了水平线/垂直线的一些限制。资料来源: 我的数学不是很好,但我假设直线公式的一般方程有限制,试图用a,B,C的一般系数用距离公式计算距离是行不通的 这是我得到系数的原始代码 func计算公式线性系数(点1:CGPoint,点2:CGPoint)->[CGFloat]{ //以Ax+By+C=0的形式计算直线方程 //y-y1=(y2-y1)/(x2-x1)*(x-x1)或者 //(y1-y2)*x+(x2-x1)*y+(x1-x2

我发现了一些类似的东西,给了我一条线的一般形式,但写出来后,我遇到了水平线/垂直线的一些限制。资料来源:

我的数学不是很好,但我假设直线公式的一般方程有限制,试图用a,B,C的一般系数用距离公式计算距离是行不通的

这是我得到系数的原始代码

func计算公式线性系数(点1:CGPoint,点2:CGPoint)->[CGFloat]{
//以Ax+By+C=0的形式计算直线方程
//y-y1=(y2-y1)/(x2-x1)*(x-x1)或者
//(y1-y2)*x+(x2-x1)*y+(x1-x2)*y1+(y2-y1)*x1=0
//式中,a=y1-y2,b=x2-x1,c=(x1-x2)*y1+(y2-y1)*x1
设x1:CGFloat=point1.x
设x2:CGFloat=point2.x
设y1:CGFloat=point1.y
设y2:CGFloat=point2.y
设A=y1-y2
设B=x2-x1
设C=(x1-x2)*y1+(y2-y1)*x1
返回[A、B、C]
}
然后是我使用的距离公式

func计算的点与点之间的距离(点:CGPoint,A:Float,B:Float,C:Float)->Float{
设x:Float=Float(点x)
设y:Float=Float(点y)
设距离=abs(A*x+B*y+C)/(pow(A,2)+pow(B,2))。平方根()
返回距离
}
它工作得很好,直到我引入一条水平线,如坐标0,0和150,0

于是我决定尝试一条点和一条线垂直相交的路线,但我在求解x时遇到了困难,因为我把两个方程设置为彼此相等。我在这里找到了这方面的资源:但我不确定这应该如何在代码中表示


任何提示或资源,我可能还没有找到感谢。谢谢大家!

太棒了@马特,谢谢!看来我现在可以解决这个问题了:]耶!你当然得翻译。