2013-02-07 49 views
1

使用Python 2.7.3和Pygame 1.9.1。用終點計算點數

我有一條線,我只知道端點A和B的座標。
我想計算什麼是座標AB,給定一個x或y軸上的值。
對於實施例
Image Example

在這裏,我知道A
(x,y)
B & C
此外,
C是在X軸或Y軸。
我的問題
如何計算點的座標(X,Y)的位置D

+0

你知道如何設置直線方程嗎? –

+0

@MatteoItalia不,但剛剛在Google上搜索過。所以現在,是的。 – pradyunsg

+0

好吧,你可以在[維基百科](http://en.wikipedia.org/wiki/Line-line_intersection)上查看它。 – sloth

回答

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開始)。

話雖這麼說,你可以得到的Dy僅通過上述確定的直線(y = f(x))方程中把這種x知道它x;如果你知道y並且想要確定x,那麼相同(相反,x = f(y))。

+0

謝謝,它的工作.. – pradyunsg