2016-03-16 80 views
0

我創建一個平面對象:UnityEngine.Plane - 距離不正確

Plane p = new Plane(
    new Vector3(1, 0, 0), 
    new Vector3(10, 0, 0)); 

我希望這樣的結果:

p.normal == new Vector3(1, 0, 0) 
p.distance == 10 

然而,當我調試我的代碼,我看到的p.distance結果是 - 10而不是10.

Plane.distance評論說「從原點到飛機的距離」。所以從起點到飛機它必須是10個距離。我哪裏做錯了?

+0

如果您使用第二個參數僅用於距離,那麼您應該去'public Plane(Vector3 inNormal,float distance) 。否則,正常可能是錯誤的方式,所以你實際上在另一邊創建飛機。在這種情況下反轉法線的方向。 –

回答

0

我相信你是對的。

按照一些鏈接來幫助討論。

Plane class

Plane equation

在你的情況下,你的平面方程爲x + 10 = 0。因此,當d = 10時,D = 10/sqrt(sqr(1))= 10