您当前的位置: 首页 >  matlab

slandarer

暂无认证

  • 1浏览

    0关注

    248博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Matlab 判断点是否在凸多面体内

slandarer 发布时间:2020-05-02 19:33:33 ,浏览量:1

使用matlab判断点是否在三维点集形成的凸包内 判断点是否在凸多边形内有matlab自带的函数,但是判断是否在凸多面体内没有现成的程序,于是写了一个。 使用方法与完整代码

function bool=in_convex_polyhedron(convex_hull,points)
%本程序用于判断points是否在convex_hull形成的三维凸包内
%convex_hull为凸包或散点集
%points为要做判断的点(nx3)
%本程序返回类型为布尔型
%使用实例
%A=[0 0 0;0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0;1 1 1];
%p=[1 2 3];
%b=in_convex_polyhedron(A,p)

bool=zeros(size(points,1),1);
ori_set=convex_hull;
ori_edge_index=convhull(ori_set,'Simplify',true);
ori_edge_index=sort(unique(ori_edge_index));
for i=1:size(points,1)
    new_set=[convex_hull;points(i,:)];
    new_edge_index=convhull(new_set,'Simplify',true);
    new_edge_index=sort(unique(new_edge_index));
    bool(i,1)=isequal(ori_edge_index,new_edge_index);
end
bool=boolean(bool);
end
关注
打赏
1664692598
查看更多评论
立即登录/注册

微信扫码登录

0.0365s