簡單地說,我有:查找線段矩形交點
- 視口矩形,其中(0,0)是左下角,(1,1)是右上角和( 0.5,0.5)是屏幕的中心。
- 矩形外的點(a,b)。
這是在視口座標系中,+ X是正確的,+ Y在屏幕上。
而且我需要一個函數,它接受這些參數,並返回矩形邊(矩形中心(0.5,0.5)和點(a,b))之間的直線相交的點。
我知道如何用給定的座標在紙上做到這一點,但是當它涉及到代碼時我無法弄清楚。此外,我意識到這樣的問題已經在不同的線程中得到了解決 - 但我無法在任何地方找到簡單的輸入來輸出函數。
我在Unity3D引擎中這麼做,所以最好在Javascript中,但任何語言或僞代碼將是一個很大的幫助,因爲我可以手工轉換它。
編輯 爲了澄清,我正在尋找類似:
function IntersectFromViewportCenter(x : float, y : float) {
...
return Point(x1, y1);
}
其中(x,y)是圓和(X1,Y1)之外的點的交點。
謝謝
謝謝,這似乎爲工作我。我不得不添加一個快速修復,使其在屏幕的底部和左側工作,但這可能是因爲我在3D世界空間中進行的轉換事先翻轉了座標。 – jt78
邊緣上的點的乘法/加法是不必要的。 – Jessy