基于MATLAB的多面体生成及其体积计算等

MATLAB 中包含一系列多面体相关的函数,其生成多面体函数以及多面体体积计算的输入参数均为多面体的顶点,具体原理可查阅Delaunary相关文献。具体代码如下,

%%功能:生成多面体以及计算其体积,判断某点是否在多面体内部

clc;
clear all;
close all;
x = gallery('uniformdata',[30 1],0);%%[0 ;0 ;0 ;0 ;10 ;10 ;10 ;10 ];%%生成随机顶点的x坐标
y = gallery('uniformdata',[30 1],1);%%[ 0 ; 0 ; 10; 10 ; 0 ; 0 ; 10 ; 10 ];%%生成随机顶点的y坐标
z = gallery('uniformdata',[30 1],2);%%[ 0; 10; 0; 10; 0; 10; 0; 10];%%生成随机顶点的z坐标
point_set=[x y z];%%顶点坐标集合
p_detected=rand(1,3);%%待检验点
tri = delaunayTriangulation(point_set);%%delaunay三角剖分

tetramesh(tri,'FaceAlpha',0.3);%%绘制多边形图
 hold on;
 scatter3(p_detected(1,1),p_detected(1,2),p_detected(1,3),100,'filled','r')%%标注待检测点
 t = tsearchn(point_set,tri,p_detected);%%判断待检测点是否在多面体内
 if isnan(t) 
    disp('No') ;
 else
    disp('Yes') ;
 end

[ch ,volume] = convexHull(tri);%%计算多面体体积
 fprintf('%s %d','volume=',volume);

  • 10
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值