我有一个问题,我知道一条线,我只知道它的斜率(M)和它上面的点A(x,y),我如何计算这条线上的点(实际上是两个点),离点A的距离(D)?我问这个是为了找出通过A(x,y)的直线上的像素强度,在这种情况下,距离.Distance将是像素数。
发布于 2016-01-29 02:47:52
Let me explain the answer in a simple way。
起点- (x0, y0)
端点- (x1, y1)
我们需要在从起点到终点的距离dt处找到一个点(xt, yt)
。
起点和终点之间的距离由d = sqrt((x1 - x0)^2 + (y1 - y0)^2)
给出
让距离之比,t = dt / d
然后是(xt, yt) = (((1 - t) * x0 + t * x1), ((1 - t) * y0 + t * y1))
点
如果为0 < t < 1
,则点在线上。
如果为t < 0
,则该点位于(x0, y0)
附近的线外。
如果为t > 1
,则该点位于(x1, y1)
附近的线外。
发布于 2009-08-09 02:46:21
让我们将你试图寻找的点称为P,坐标为px,py,而起点A的坐标为ax和ay。斜率m是Y的变化与X的变化的比率,所以如果你的点P到A的距离s,那么它的坐标是px = ax + s,py = ay +m*s。现在使用毕达哥拉斯,从A到P的距离d将是d= sqrt(s *s+ (m * s) * (m * s))。要使P是远离A的特定D单位,请找到s as s= D/sqrt(1 +m* m)。
发布于 2013-05-10 14:45:37
https://stackoverflow.com/questions/1250419
复制相似问题