获取 3d 对象边界
Get 3d object boundaries
应用程序如何确定 3d 对象的边界(只是一个框)?
举个例子
我需要此信息进行碰撞检测。
这是计算 3D 对象的最小值和最大值(边界框)的方法。
void BBox(GLpoint *p, int n_vert, GLpoint& p_max, GLpoint& p_min)
{
p_min.x = p[0].x;
p_min.y = p[0].y;
p_min.z = p[0].z;
p_max.x = p[0].x;
p_max.y = p[0].y;
p_max.z = p[0].z;
for (int i=1; i<n_vert; i++)
{
p_min.x = MIN(p_min.x, p[i].x);
p_min.y = MIN(p_min.y, p[i].y);
p_min.z = MIN(p_min.z, p[i].z);
p_max.x = MAX(p_max.x, p[i].x);
p_max.y = MAX(p_max.y, p[i].y);
p_max.z = MAX(p_max.z, p[i].z);
}
}
应用程序如何确定 3d 对象的边界(只是一个框)?
举个例子
我需要此信息进行碰撞检测。
这是计算 3D 对象的最小值和最大值(边界框)的方法。
void BBox(GLpoint *p, int n_vert, GLpoint& p_max, GLpoint& p_min)
{
p_min.x = p[0].x;
p_min.y = p[0].y;
p_min.z = p[0].z;
p_max.x = p[0].x;
p_max.y = p[0].y;
p_max.z = p[0].z;
for (int i=1; i<n_vert; i++)
{
p_min.x = MIN(p_min.x, p[i].x);
p_min.y = MIN(p_min.y, p[i].y);
p_min.z = MIN(p_min.z, p[i].z);
p_max.x = MAX(p_max.x, p[i].x);
p_max.y = MAX(p_max.y, p[i].y);
p_max.z = MAX(p_max.z, p[i].z);
}
}