2010-07-27 49 views
2

我創建了一個OpenGL方形像這樣..創建邊框對象

  final float array1[] = new float[] { 
      //Front face 
      lx, ly, hz, 
      lx, hy, hz, 
      hx, ly, hz, 
      hx, hy, hz 
    }; 

我也得到了一個雷。我現在想在每個繪製的方塊周圍放置邊界框,以便我可以檢查它們是否相交。我會如何去做這件事?

謝謝。

回答

2

你不需要四周的邊界框。實際上,在一個正方形的情況下,邊界框是正方形的

邊界框僅僅是一個概念:一個幾何外殼,其中一些其他(實際)幾何可以在概念上存在。這個想法是,檢查一個矩形的四個角(用於碰撞等)比檢查一個複雜的多邊形對象的每個頂點要容易得多(而且更快)。

至於你的碰撞檢測的特定問題,你應該簡單地把你的光線投射到你的每個方塊定義的平面上。如果飛機上的點位於你的所有角落之間,那麼光線就會撞擊到正方形。

1

OpenGL沒有包圍盒的概念,只是一個與碰撞檢測相關的數學概念。因此,基本上,只需創建一些箱體數據結構,並沿頂點存儲邊界框(理想情況下在同一座標空間中),並在必要時進行碰撞檢查。