1
平面擬合示例將立方體放置在它根據用戶選擇的點檢索的點雲創建的平面上。我想確定這個點是地板,牆壁還是屋頂。我想要實現的是改變這個例子,以便它只將立方體放在地板上,而不是放在牆上或屋頂上。項目探戈:如何判斷飛機裝配示例中創建的飛機是Java SDK中的底板還是牆壁?
平面擬合示例將立方體放置在它根據用戶選擇的點檢索的點雲創建的平面上。我想確定這個點是地板,牆壁還是屋頂。我想要實現的是改變這個例子,以便它只將立方體放在地板上,而不是放在牆上或屋頂上。項目探戈:如何判斷飛機裝配示例中創建的飛機是Java SDK中的底板還是牆壁?
最簡單的解決方案是檢查平面正常。通常,牆的法線垂直於重力,地板與重力平行。
類似這樣的:
你得到了正常的飛機命中嗎?
float surfaceAngle = Vector3.Angle(normal, new Vector3(0,1,0));
float floorLimitAngle = 20;
float ceilingLimitAngle = 180 - 20;
if (surfaceAngle < floorLimitAngle)
// It's a floor
else if (surfaceAngle > ceilingLimitAngle)
// It's a ceiling
else
// It's a wall
是的,但是如何計算三維空間中兩個矢量之間的曲線? –