dianxin05 发表于 2009-4-26 19:06

如何判断一个多边形是凹还是凸

请问如何用MATLAB指令判断一个多边形是凹还是凸?谢谢指点!

ChaChing 发表于 2009-4-26 19:34

不才, 不知有现成函数!
求出内角再判断是否大於180?

dianxin05 发表于 2009-5-6 16:06

回复 沙发 ChaChing 的帖子

你好,那怎么求内角再判断是否大於180度啊?对于不同的图形同一个角可能是小于180也有可能大于180啊!请您给点指点!谢谢了!

rocwoods 发表于 2009-5-6 16:44

help convhull
help inpolygon

friendchj 发表于 2009-5-6 17:05

参考以前你问的关于求不规则图形的内角的问题:
http://forum.vibunion.com/forum/viewthread.php?tid=77023&page=1#pid403478

dianxin05 发表于 2009-5-6 20:32

回复 地板 rocwoods 的帖子

谢谢前辈指点!呵呵!

ChaChing 发表于 2009-5-6 21:48

回复 板凳 dianxin05 的帖子

怎楼主自个问过竟忘了

ChaChing 发表于 2009-5-6 21:51

回复 地板 rocwoods 的帖子

怎用convhull/inpolygon判断? 好奇! 教下!

rocwoods 发表于 2009-5-7 09:25

convhull找出多边形的凸壳,再用inpolygon,如果是凸多边形,所有点都在凸壳上。否则至少一个点在凸壳内。

ChaChing 发表于 2009-5-7 10:14

回复 9楼 rocwoods 的帖子

漂亮!:victory:
汗! LZ都已提示, 怎没想到!:@L
谢谢解惑!

friendchj 发表于 2009-5-7 10:16

回复 9楼 rocwoods 的帖子

hehe,受教了,写了一个例子:
x='; y=';
K=convhull(x,y);
plot(x(K),y(K),'r',x,y,'bo')
=inpolygon(x,y,x(K),y(K));
if isempty(find(ON==0,1))
    disp('此多边形为凹的');
else
    disp('此多边形为凸的');
end

[ 本帖最后由 ChaChing 于 2009-5-7 10:24 编辑 ]
页: [1]
查看完整版本: 如何判断一个多边形是凹还是凸