如何使用项目符号HeightfieldTerrainShape

时间:2019-05-21 20:55:26

标签: java bulletphysics jbullet

我正在努力从JBullet物理库中查找如何使用HeightfieldTerrainShape。如我所见,有两种可用的构造函数:

public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData,
            float heightScale, float minHeight, float maxHeight, int upAxis, PHY_ScalarType heightDataType,
            boolean flipQuadEdges)

public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData,
        float maxHeight, int upAxis, boolean useFloatData, boolean flipQuadEdges)

heightScaleminHeightmaxHeightupAxis是自我解释。但是“ heightStick”到底是什么?以及如何确定其宽度和长度? heightfieldData应该采用什么格式?我假设这只是浮点数的字节缓冲区?

1 个答案:

答案 0 :(得分:2)

第一个功能

public HeightfieldTerrainShape(int heightStickWidth, int heightStickLength, byte[] heightfieldData, float heightScale, float minHeight, float maxHeight, int upAxis, PHY_ScalarType heightDataType, boolean flipQuadEdges)
根据文档https://pybullet.org/Bullet/BulletFull/classbtHeightfieldTerrainShape.html#a90d823ba5f44871a0bcfce0174177223

是首选。

遍历文档(和cpp代码),似乎原子矩形表面的矩形大小代表您要定义的表面(地形)。

例如,如果宽度和高度为1,地形为10 x 10(x和y),则将有10 x 10 = 100这样的矩形代表您的地形。