⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fellipse.m

📁 航天工程工具箱
💻 M
字号:
function hh=fellipse(varargin)
%FELLIPSE   Draws a filled ellipse.
%   FELLIPSE(F1,F2,R,[,LINESPEC])
%   FELLIPSE(O,A,B[,LINESPEC]), where LINESPEC is any of the
%   following characters
%%      y   yellow%      m   magenta%      c   cyan%      r   red%      g   green%      b   blue (default)%      w   white%      k   black
%
%   or an RGB vector.%
%   H = FELLIPSE(...)
%
%   See also CIRLCE, FCIRCLE, ELLIPSE.

% Copyright (c) 2001-09-15, B. Rasmus Anthin.

ni=nargin;
opt='';
if nargin & (ischar(varargin{end}) | length(varargin{end})==3)
   opt=varargin{end};
   ni=ni-1;
end
error(nargchk(3,3,ni))
if length(varargin{2})>1
   f1=varargin{1};
   f2=varargin{2};
   r=varargin{3}*2;
   if abs(f1(1)-f2(1))<abs(f1(2)-f2(2))
      m=mean([f1(1) f2(1)]);
      f1(1)=m;f2(1)=m;
   else
      m=mean([f1(2) f2(2)]);
      f1(2)=m;f2(2)=m;
   end
   o=[mean([f1(1) f2(1)]) mean([f1(2) f2(2)])];
   c=abs(f2-o);
   if ~c(1)
      b=max([r c(2)]);
      a=sqrt(b^2-c(2)^2);
   elseif ~c(2)
      a=max([r c(1)]);
      b=sqrt(a^2-c(1)^2);
   end
   %hold on,plot(f1(1),f1(2),'x'),plot(f2(1),f2(2),'x')
else
   o=varargin{1};
   a=varargin{2};
   b=varargin{3};
end
phi=linspace(0,2*pi);
h=patch(o(1)+a*cos(phi),o(2)+b*sin(phi),opt);
set(h,'edgec',get(h,'facec'));
set(h,'user',{'fellipse',abs(a),abs(b),o});
if nargout,hh=h;end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -