基于MATLAB的多面体生成及其体积计算等 | 您所在的位置:网站首页 › 不规则多面体建模 › 基于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 |
CopyRight 2018-2019 实验室设备网 版权所有 |