2011-11-30 76 views
1

我想測試旋轉矩形是否與我的相機視圖frustrum(一個軸對齊的矩形)相交。檢測旋轉矩形相交

我一直希望在Graphics Gems中提供這個解決方案,但是沒有看到它。這看起來很接近:http://www.ragestorm.net/tutorial?id=22但是評論表明它不像發表的那樣工作。

這個問題好像在過去幾年一直在SO上問過幾次,但沒有看到一個可行的例子。任何人都有任何指針?也許有一種我可以從Box2d中解脫出來的靜態方法,因爲這樣的測試必須在代碼中的某處使用。

謝謝

回答

0

你在正確的軌道上 - Box2D的確實有此方法...

在b2CollidePolygon.cpp

,有以下方法:

void b2CollidePolygons(b2Manifold* manifold, 
    const b2PolygonShape* polyA, const b2Transform& xfA, 
    const b2PolygonShape* polyB, const b2Transform& xfB) 

如您所見,測試結果由b2Manifold返回。測試的輸入是兩個形狀(一個是你的身體的固定裝置,另一個是你的視圖),以及這些形狀的變換,你可以從調用b2BodyGetTransform方法中獲得這些變換。

+0

我猜測,因爲其中一個矩形是一個視圖矩形,他實際上並沒有要處理的物體。但是可以很容易地完成變換,如:b2Transform xfA(b2Vec2(x,y),angleInRadians); – iforce2d