?? convex2.m
?? Convex constructed uisng Matlab
?? M
字號:
??
function e = convex2(x,y)
% CONVEX2 Finds a convex hull of a 2-dimensional set of points.
% N = CONVEX2(X,Y) Returns indices of elements of X, Y
% set constituing convex hull, so that the convex hull
% coordinates are X(N), Y(N).
% CONVEX2(X+Y*i) is the same as CONVEX2(X,Y).
% CONVEX2 uses a primitive (recursion) routine CONVEX20.
% Copyright (c) 1995 by Kirill K. Pankratov
% kirill@plume.mit.edu
% 04/24/94, 02/22/95, 04/19/95
% Hande input ..............................................
if nargin==0, help convex2, return, end
if nargin==1, y = imag(x); x = real(x); end % Complex input
x = x(:);
y = y(:);
l = length(x);
if length(y)~=l
error(' Vectors x, y must have the same length')
end
[x0,n0] = max(x); % Find the left point
[x1,n1] = min(x); % Find the right point
if n0==n1 % If all x are equal, find extremal y
[x0,n0] = max(y); % Find the upper point
[x1,n1] = min(y); % Find the lower point
end
if n0==n1, e = n0; return, end % Single point
% Recursively find all points on the convex hull ..........
e1 = convex20(n0,n1,(1:l)',x,y); % Upper half-arc
e2 = convex20(n1,n0,(1:l)',x,y); % Lower half-arc
e = [e1; e2]; % Combine two half-arcs
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -