使用Python 2.7.3和Pygame 1.9.1。用終點計算點數
我有一條線,我只知道端點A和B的座標。
我想計算什麼是座標AB,給定一個x或y軸上的值。
對於實施例
在這裏,我知道的A
(x,y)
,B
& C
此外,
C
是在X軸或Y軸。
我的問題
如何計算點的座標(X,Y)的位置D
使用Python 2.7.3和Pygame 1.9.1。用終點計算點數
我有一條線,我只知道端點A和B的座標。
我想計算什麼是座標AB,給定一個x或y軸上的值。
對於實施例
在這裏,我知道的A
(x,y)
,B
& C
此外,
C
是在X軸或Y軸。
我的問題
如何計算點的座標(X,Y)的位置D
的直線方程爲:
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
開始)。
話雖這麼說,你可以得到的D
的y
僅通過上述確定的直線(y = f(x)
)方程中把這種x
知道它x
;如果你知道y
並且想要確定x
,那麼相同(相反,x = f(y)
)。
謝謝,它的工作.. – pradyunsg
你知道如何設置直線方程嗎? –
@MatteoItalia不,但剛剛在Google上搜索過。所以現在,是的。 – pradyunsg
好吧,你可以在[維基百科](http://en.wikipedia.org/wiki/Line-line_intersection)上查看它。 – sloth