我正在编写一个python app来选择矩形区域,当用户设置了2个点(矩形的长度)时,第三个和第四个点被约束形成一个矩形,其中矩形的宽度由鼠标光标和最后一个点的Y差异给出。
这里有一张快速图片来解释,我正在寻找C点的X坐标。
我知道:
我不确定如何解决这个问题...使用向量?我在我的项目中使用了numpy。
答案 0 :(得分:3)
这更像是一个数学问题,而不是一个笨拙的问题。
(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坐标)