使用Python 2.7.3和Pygame 1.9.1。
我有一条线,我只知道端点A和B的坐标。
我想计算什么是坐标AB,给定x或y轴上的值
例如
我知道
(x,y)
, A
& B
C
同时
C
位于X轴或Y轴上
我的问题
如何计算点D
答案 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}})。