声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2127|回复: 0

[转帖]心形线动态生成演示

[复制链接]
发表于 2006-5-8 08:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  1. function [xcar,ycar]=drawcardioid(varargin)
  2. % A demonstration to show the form of the cardioid

  3. error(nargchk(0,3,nargin));
  4. nin = nargin;
  5. if nin==0
  6. cx1=0; cy1=0; % The coordinate of the center point.
  7. r=1; % The radius of the circle.
  8. elseif nin==1
  9. cx1=0; cy1=0;
  10. r=varargin{1};
  11. elseif nin==2
  12. cx1=0;
  13. cy1= vararin{1};
  14. r = varargin{2};
  15. else
  16. cx1=vararin{1};
  17. cy1=vararin{2};
  18. r=vararin{3};
  19. end

  20. if nargout==0
  21. flag=1;
  22. else
  23. flag=0;
  24. end

  25. theta = linspace(0,2*pi,120);
  26. x0 = r*cos(theta);
  27. y0 = r*sin(theta);
  28. x1 = x0+cx1;
  29. y1 = y0+cy1;
  30. cx2 = 2*x0+cx1;
  31. cy2 = 2*y0+cy1;
  32. x3=x0.*cos(theta)-y0.*sin(theta);
  33. y3=x0.*sin(theta)+y0.*cos(theta);
  34. for k=1:120
  35. x2(k,:) = cx2(k)+x0;
  36. y2(k,:) = cy2(k)+y0;
  37. xx(k)=cx2(k)+x3(k);
  38. yy(k)=cy2(k)+y3(k);
  39. end
  40. xcar = xx;
  41. ycar = yy;
  42. if flag
  43. plot(x1,y1);
  44. axis([cx1-3.2*r cx1+3.2*r cy1-3.2*r cy1+3.2*r]);
  45. axis manual
  46. hold on
  47. daspect([1 1 1]);
  48. set(gcf,'doublebuffer','on');
  49. for k = 1:120
  50. plot(x2(k,:),y2(k,:),'g',xx(k),yy(k),'r*');
  51. pause(0.05);
  52. %plot(x2,y2,'color','w');
  53. end
  54. end
复制代码


来自山城棒棒儿

[ 本帖最后由 suffer 于 2006-10-9 20:10 编辑 ]
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 22:40 , Processed in 0.062352 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表