|
楼主 |
发表于 2007-6-4 12:12
|
显示全部楼层
我用如下代码实现了任意多边形两相邻内角之差不大于某个值:(令我满意的是它避免了循环的使用)
相邻角比较2007 5 27
% x1=x(1:end-1) % 因为x(1)=x(end),所以这里取x1=x(1:end-1)
% y1=y(1:end-1)
% xx=x1(2:end);xx=[xx,x1(1)]
% yy=y1(2:end);yy=[yy,y1(1)]
% aa=yy-y1
% bb=xx-x1
% k=aa./bb
% index_k=isnan(k)
% if any(index_k==1)
% n=n-1;
% continue
% end
% kk=k(2:end);kk=[kk,k(1)];
% c=kk-k;d=1+kk.*k;
% myangle1=atan(abs(c)./d)
% myangle2=myangle1(2:end);
% myangle2=[myangle2,myangle1(1)]
% myangle=myangle2-myangle1
% if max(abs(myangle))>(2*pi/S(n))*0.5 % S(n)为第n多边形边数
% n=n-1
% continue
% end
如有不妥之处,还望高手指正!
[ 本帖最后由 canglang 于 2007-6-4 17:39 编辑 ] |
|