如何计算垂直于直线的点

时间:2020-09-16 07:42:49

标签: math

我有两个点PointA和Point B用红色点表示。

enter image description here

当直线为水平时,我可以计算用绿色点表示的垂直点(顶部垂直点,底部垂直点)。

当线有坡度时,我将如何计算垂直点。

enter image description here

1 个答案:

答案 0 :(得分:2)

计算AB的方向向量

Sub testFilFormulaDown()
 Dim sh As Worksheet, lastRow As Long
 
 Set sh = ActiveSheet 'use here the necessary sheet
 lastRow = sh.Range("O" & rows.count).End(xlUp).row 'chosen O:O column, being involved in the formula...
 sh.Range("AC5:AC" & lastRow).Formula = "=IF(ISBLANK(B5),"""",IF(ISBLANK(O5)=TRUE,""Missing PSD"",TODAY()-O5))"
End Sub

规格化(单位长度)

dx = b.x-a.x
dy = b.y-a.y

制作垂直向量

len = sqrt(dx*dx+dy*dy)
udx = dx / len
udy = dy / len

计算绿点

px = -udy
py = udx