给定一个模型文件,计算出这个模型的OBB包围盒的八个顶点 的 项目


visual studio第一次打开项目:  选择带有红框的++ logo


已有打开项目后,再打开


打开后,main函数 ,osg命名空间 报错, 由于只有一个头文件,所以osg明明空间的声明应该在 这个头文件里,


接下来打开头文件, 如下图 : 



在 项目 配置 中,加入 include 路径 后,报错消失。




运行项目,报错 :






打开项目三: 包围盒




配置项目属性,添加库文件、库目录 ,编译后仍报错:



解决方案 :

1、查看lib文件, 大部分 为1M以下 文件,故判定为动态库,

在项目配置中,首先

(1)、


(2)、

(3)、




调试通过!!









  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
以下是用Matlab实现OBB包围的示例代码: ```matlab % 生成一组点云数据 points = rand(100, 3); % 计算点云的均值和协方差矩阵 mean_point = mean(points, 1); covariance = cov(points); % 对协方差矩阵进行特征值分解 [V, D] = eig(covariance); % 取特征值最大的三个特征向量作为OBB的三个轴 axis1 = V(:, 3)'; axis2 = V(:, 2)'; axis3 = V(:, 1)'; % 计算OBB的中心点 center = mean_point; % 计算OBB的半轴长度 half_lengths = sqrt(diag(D))'; % 绘制OBB hold on; plot3(points(:, 1), points(:, 2), points(:, 3), 'b.'); draw_box(center, axis1, axis2, axis3, half_lengths); axis equal; ``` 其中,`draw_box`函数用于绘制OBB: ```matlab function draw_box(center, axis1, axis2, axis3, half_lengths) corners = zeros(8, 3); corners(1, :) = center - half_lengths(1) * axis1 - half_lengths(2) * axis2 - half_lengths(3) * axis3; corners(2, :) = center - half_lengths(1) * axis1 - half_lengths(2) * axis2 + half_lengths(3) * axis3; corners(3, :) = center - half_lengths(1) * axis1 + half_lengths(2) * axis2 - half_lengths(3) * axis3; corners(4, :) = center - half_lengths(1) * axis1 + half_lengths(2) * axis2 + half_lengths(3) * axis3; corners(5, :) = center + half_lengths(1) * axis1 - half_lengths(2) * axis2 - half_lengths(3) * axis3; corners(6, :) = center + half_lengths(1) * axis1 - half_lengths(2) * axis2 + half_lengths(3) * axis3; corners(7, :) = center + half_lengths(1) * axis1 + half_lengths(2) * axis2 - half_lengths(3) * axis3; corners(8, :) = center + half_lengths(1) * axis1 + half_lengths(2) * axis2 + half_lengths(3) * axis3; edges = [1 2; 1 3; 1 5; 2 4; 2 6; 3 4; 3 7; 4 8; 5 6; 5 7; 6 8; 7 8]; for i = 1:size(edges, 1) line([corners(edges(i, 1), 1), corners(edges(i, 2), 1)], [corners(edges(i, 1), 2), corners(edges(i, 2), 2)], [corners(edges(i, 1), 3), corners(edges(i, 2), 3)], 'Color', 'r'); end end ``` 该函数接受OBB的中心点、三个轴和半轴长度作为参数,计算OBB八个顶点,并绘制OBB的十二条边。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值