python - 给定直线上的另一个点和垂直线上的两个点,如何找到直线上一点的 X 坐标?

标签 python math numpy

我正在编写一个Python应用程序来选择矩形区域,当用户设置了2个点(矩形的长度)时,第三个和第四个点被约束形成一个矩形,其中矩形的宽度是给定的鼠标光标与最后一个点的 Y 差值。

这是一个简单的图片来解释,我正在寻找点 C 的 X 坐标。

enter image description here

我知道:

  • A(2,3)
  • B(5,5)
  • 角度 = 90 度
  • C 的 Y 坐标为 7。

我不知道如何使用向量来解决这个问题?我在我的项目中使用 numpy。

最佳答案

这更像是一个数学问题,而不是一个 numpy 问题。

(AB) 的斜率为 (y_a - y_b)/(a - b)。因此,任何垂直于 (AB) 的斜率都是 p=(b-a)/(y_a-y_b)(与原始斜率的倒数相反)。

从这里很容易确定穿过 B 的垂线 (AB) 的方程:y-y_b=p*(x-x_b)。并将 y_c 替换为 y 以查找 x_c

如果 (AB) 是水平的(0 斜率),则会出现问题(被零除)。在这种情况下,x_c 只是 x_b((BC) 上的所有点都具有相同的 x 坐标)

关于python - 给定直线上的另一个点和垂直线上的两个点,如何找到直线上一点的 X 坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32606940/

相关文章:

python - Python Pandas 中的日期字段之间的差异不需要 'days' 部分

c - 如何旋转和缩放单应性

math - 在水库采样中重复使用随机数

python - 在列表列表中查找前 N 个最频繁的数字序列

python - 在 Python 中获取相差 N 或更多的最小坐标

python - 如何有效地定义每日常量?

python - 删除两个等长数组中nan AND对应的元素

python - 从另一个数据框中计算 nunique

c++ - 做个圈子把别人推开?

python - 无法在 Python 中删除文本文件空格