问题描述
我正在从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空间中甚至有可能吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)