下面是我写的包围盒代码,他并没有包围着我所给出的点。我给出了两个点,并由此延伸出来8个点,所有可以构建三维的obb包围盒。请各位大佬帮我看一下我的代码哪里错了。
x1=1600;x2=1430;
y1=1600;y2=1430;
z1=584.6;z2=584.6;
inputdata = [x1-r,y1,z1;x2-r,y2,z2;x1,y1,z1;x2,y2,z2;x1+r,y1,z1;x2+r,y2,z2;x1-r,y1,z1+h;x2-r,y2,z2+h;x1+r,y1,z1+h;x2+r,y2,z2+h]';
theta=acos(dot((a),(b))/(norm(a)*norm(b)))*180/3.1415;
inputada1 = inputdata*theta;
[m,n] = size(inputdata);%获得输入数据的维度
cov = zeros(m,m);%创建协方差矩阵
E = zeros(m,1);%得到矩阵的列数
%获得每维数据的平均值
for i = 1:m
E(i) = mean(inputdata(i,:),2);%bmean(X,1)为列向量的均值,mean(X,2)为行向量的均值。
end
%计算协方差
for i = 1:m
for j = 1:m
cov(i,j) = ((inputdata(i,:)-E(i))*(inputdata(j,:)-E(j))')./(n-1);
s = cov(i,j);
[d,v] = eig