2011-04-30 53 views
0

我剛剛讀了this教程。這是關於遊戲開發的,基本上說我需要存儲加速度,速度和位置作爲矢量來製作遊戲物理。希望它是有道理的!我需要選擇現在數據輸入...例如我需要存儲像值...如何在Java中存儲矢量?什麼是數據類型?

(3,5,2)

(6,2,3)

( 2,3)

另外,我需要做加減像這樣...

(0,1,4)+(3,-2,5)=(0 + 3,1-2,4 + 5)=( 3,-1,9)

在這種情況下應該使用哪種數據類型?

對於一個向量兩個整數(浮點數/雙打)也許?也許數組爲一個向量,其中值是整數(浮動/雙打)?

回答

8

聽起來像你想的三個值(可能是雙打):

public class Vector3 
{ 
    private final double x; 
    private final double y; 
    private final double z; 

    public Vector3(double x, double y, double z) 
    { 
     this.x = x; 
     this.y = y; 
     this.z = z; 
    } 

    public Vector3 plus(Vector3 other) 
    { 
     return new Vector3(x + other.x, y + other.y, z + other.z); 
    } 

    // etc 
} 

請注意,我做了這個不可改變的 - 這並不總是表現(這可能是您的情況有關)的最佳選擇但有助於可讀性。

+0

但我怎麼能存儲的值(1,2,3)作爲整數?我看到有三個整數,但我需要將它們存儲在一個值中。 – daGrevis 2011-04-30 19:47:11

+0

@daGrevis:你沒有。你有三個值 - 將它們存儲爲三個值。您保留一個對包含*三個值的對象*的引用。您對Java中的類和對象的工作方式有多少經驗?這將是非常重要的... – 2011-04-30 19:50:40

+0

改變矢量 mKorbel 2011-04-30 19:52:11

0

或者你也可以使用泛型:

public interface MathVector<T extends Number> 
{ 
    MathVector<T> add(MathVector<T> addend); 
    T innerProduct(); 
    // Vectors have more than this, but it makes the point 
} 
相關問題