计算与端点在线的点

时间:2013-02-07 14:48:36

标签: python line pygame

使用Python 2.7.3和Pygame 1.9.1。

我有一条线,我只知道端点A和B的坐标。
我想计算什么是坐标AB,给定x或y轴上的值 例如
Image Example

我知道
(x,y) A& B C 同时
C位于X轴或Y轴上 我的问题
如何计算点D

的坐标(x,y)的位置

1 个答案:

答案 0 :(得分:2)

直线的等式是:

y = mx + q

您想要的是y(x)x(y),并且您有两个端点(x1, y1)(x2, y2)。用直线方程替换它们并建立一个线性系统:

y1 = m·x1 + q
y2 = m·x2 + q

减法收益:

y2-y1 = m(x2-x1) => m = (y2-y1)/(x2-x1)

和q显然是:

q = y2-m·x2

所以,现在你的y = f(x)表示连接两点的直线。

显然,垂直线不能以这种形式表示(m->+inf),如果你试图在每个x上评估这个函数的像素上跟踪一条线,你就会得到垂直的“洞”。
在这两种情况下,您都应该使用x = f(y)表单(您可以按照相同的步骤获取,但从等式x = py + r开始)。

话虽这么说,你可以通过将y放在直线的等式中来D知道其x x y = f(x) x = f(y) })确定以上;如果你知道y并且想要确定x,则同样成立(使用反比关系{{1}})。