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

📄 drawcardioid.m

📁 matlab宝典,电子工业出版社,包含该书的源码4-6章
💻 M
字号:
function [xcar,ycar]=drawcardioid(varargin) 
%判断变长度变量的个数
error(nargchk(0,3,nargin)); 
nin = nargin; 
%如果用户没有确定参数的数值
if nin==0 
% 中心点的坐标数值
    cx1=0; cy1=0; 
% 圆形的半径
    r=1; 
%如果输入参数的数值个数为1
elseif nin==1 
cx1=0; cy1=0; 
r=varargin{1}; 
%如果输入参数的个数为2
elseif nin==2 
cx1=0; 
cy1= varargin{1}; 
r = varargin{2}; 
%如果函数输入参数的个数为3
else 
cx1=varargin{1}; 
cy1=varargin{2}; 
r=varargin{3}; 
end 

%判断输出参数的个数
if nargout==0 
flag=1; 
else 
flag=0; 
end 

% 定义图形的角度变量数值
theta = linspace(0,2*pi,120); 
% 计算图形数据点的坐标数值
x0 = r*cos(theta); 
y0 = r*sin(theta); 
x1 = x0+cx1; 
y1 = y0+cy1; 
cx2 = 2*x0+cx1; 
cy2 = 2*y0+cy1; 
x3=x0.*cos(theta)-y0.*sin(theta); 
y3=x0.*sin(theta)+y0.*cos(theta); 
for k=1:120 
x2(k,:) = cx2(k)+x0; 
y2(k,:) = cy2(k)+y0; 
xx(k)=cx2(k)+x3(k); 
yy(k)=cy2(k)+y3(k); 
end 
xcar = xx; 
ycar = yy; 
%绘制图形
if flag 
plot(cx1,cy1,'mp','Markersize',6);hold on;
plot(x1,y1); 
axis([cx1-3.2*r cx1+3.2*r cy1-3.2*r cy1+3.2*r]); 
axis manual;
hold on 
daspect([1 1 1]); 
set(gcf,'doublebuffer','on'); 
for k = 1:120 
plot(x2(k,:),y2(k,:),'g',xx(k),yy(k),'r*'); 
grid on;
pause(0.05); 
end 
end

⌨️ 快捷键说明

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