如何从OBB取回原始的AABB?

问题描述

我正在从AABB值开始旋转基于4个点的2D矩形:

// start from AABB
var bBox = {minX:-0.2,maxX:+0.2,minZ:-2.2,maxZ:+0.2};

// compute all 4 points clock-wise
function bbox2Points(bbox) {
  return [[bbox.minX,bbox.minZ],[bbox.minX,bbox.maxZ],[bbox.maxX,bbox.minZ]];
}
// rotation about a given object axis
// (just to inspect values,plot the z-axis along the y-axis)
function rotatePoint(pX,pY,oX,oY,d) {
    var r = deg2rad(d);
    return {
        X: Math.cos(r) * (pX-oX) - Math.sin(r) * (pY-oY) + oX,Y: Math.sin(r) * (pX-oX) + Math.cos(r) * (pY-oY) + oY
    };
}
// compute a new AABB from that OBB 
function calcAABB(points) {
  var minX = +Infinity,maxX = -Infinity,minZ = +Infinity,maxZ = -Infinity;
  for(var i=0,l=points.length;i<l;i++) {
    var p = points[i];
    var x = p.X,z = p.Y;
    if(x < minX) minX = x;
    if(z < minZ) minZ = z;
    if(x > maxX) maxX = x;
    if(z > maxZ) maxZ = z;
  }
  return {minX:minX,maxX:maxX,minZ:minZ,maxZ:maxZ};
}

鉴于新的AABB和旋转角度,我如何找回原来的AABB,即线段AB和BC的长度?在3D空间中甚至有可能吗?

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...