回 帖 发 新 帖 刷新版面

主题:坐标投影问题

已知三个点分别为a(x1,y1),b(x2,y2),c(x3,y3)
如何求b点在直线ac上的投影坐标?

回复列表 (共6个回复)

沙发


是指b在ac上的垂足吗?

板凳

解析几何问题
求垂直直线(斜率乘积为-1)
然后联立求解交点

3 楼

纯粹数学问题,推导如下,可能有误,请检验。

ac直线方程:(x-x1)/(x3-x1)=(y-y1)/(y3-y1) 即 A*x+B*y+C=0
A=y3-y1
B=x1-x3
C=y1(x3-x1)-x1(y3-y1)

点(x2,y2)到该直线垂足(x0,y0)满足

A*x0+B*y0+C=0
(y2-y0)/(x2-x0) = B/A

解得:x0=(B**2*x2-A*B*y2-A*C)/(A**2+B**2)
      y0=(-A*B*x2+A**2*y2-B*C)/(A**2+B**2)

文本模式下,公式比较难写。

4 楼

似乎是数学问题多于程序问题, 可否回去复习一下二维的解析几何?

5 楼

[quote]纯粹数学问题,推导如下,可能有误,请检验。

ac直线方程:(x-x1)/(x3-x1)=(y-y1)/(y3-y1) 即 A*x+B*y+C=0
A=y3-y1
B=x1-x3
C=y1(x3-x1)-x1(y3-y1)

点(x2,y2)到该直线垂足(x0,y0)满足

A*x0+B*y0+C=0
(y2-y0)/(x2-x0) = B/A

解得:x0=(B**2*x2-A*B*y2-A*C)/(A**2+B**2)
      y0=(-A*B*x2+A**2*y2-B*C)/(A**2+B**2)

文本模式下,公式比较难写。[/quote]

用特列简单验证一下,
A=0时: x0=x2
        y0=-C/B
B=0时: x0=-C/A
        y0=y2
特例似乎证明了推导没错。[em12]

6 楼

單位化、點乘、求和。

我来回复

您尚未登录,请登录后再回复。点此登录或注册