声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6168|回复: 12

[绘图技巧] 已知圆心和半径如何画圆

[复制链接]
发表于 2008-4-18 00:08 | 显示全部楼层 |阅读模式

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

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

x
如标题所示,已知一些圆的圆心和半径,如何用matlab将这些圆画出来?
回复
分享到:

使用道具 举报

发表于 2008-4-18 08:15 | 显示全部楼层
搜索论坛,或者找本基础书看看吧:handshake
发表于 2008-4-18 10:29 | 显示全部楼层
 楼主| 发表于 2008-4-18 11:06 | 显示全部楼层
可是我是要同时画900个圆,如果用ezplot她的圆心必须是确定的值

[ 本帖最后由 eight 于 2008-4-18 16:38 编辑 ]
发表于 2008-4-18 12:39 | 显示全部楼层
要是有规律的园,用900个循环画不行么?
 楼主| 发表于 2008-4-18 13:33 | 显示全部楼层
请高手详细说明,小妹很着急,如果这个问题解决了,我就可以进一步分析仿真结果了。
:'(
 楼主| 发表于 2008-4-18 13:34 | 显示全部楼层
已知的圆心和半径的数值存放在一个900*3的数组里
发表于 2008-4-18 14:03 | 显示全部楼层
楼主以“画圆”为关键字,搜索matlab版面,可以搜到下面的这个帖子,注意看happy教授的解答
http://forum.vibunion.com/forum/ ... hlight=%BB%AD%D4%B2
 楼主| 发表于 2008-4-18 14:43 | 显示全部楼层
happy教授的方法是圆心在原点,可我的不是。我认为并不适用于我的情况。不过还是谢谢你
发表于 2008-4-18 15:28 | 显示全部楼层

回复 9楼 的帖子

不是吧,自己只看别人的效果,不研究下代码的意思么?
其实就是一个极坐标表示,你移一下圆心坐标不是很简单么?
sita=0:pi/20:2*pi;
plot(r*cos(sita)+x0,r*sin(sita)+y0); %半径为r的圆,x0,y0为原点坐标

axis square;
发表于 2008-4-18 15:33 | 显示全部楼层
别人写的一个绘制圆形的函数,直接调用就可以了。
  1. function H=circle(center,radius,NOP,style)
  2. %---------------------------------------------------------------------------------------------
  3. % H=CIRCLE(CENTER,RADIUS,NOP,STYLE)
  4. % This routine draws a circle with center defined as
  5. % a vector CENTER, radius as a scaler RADIS. NOP is
  6. % the number of points on the circle. As to STYLE,
  7. % use it the same way as you use the rountine PLOT.
  8. % Since the handle of the object is returned, you
  9. % use routine SET to get the best result.
  10. %
  11. %   Usage Examples,
  12. %
  13. %   circle([1,3],3,1000,':');
  14. %   circle([2,4],2,1000,'--');
  15. %
  16. %   Zhenhai Wang <zhenhai@ieee.org>
  17. %   Version 1.00
  18. %   December, 2002
  19. %---------------------------------------------------------------------------------------------

  20. if (nargin <3),
  21. error('Please see help for INPUT DATA.');
  22. elseif (nargin==3)
  23.     style='b-';
  24. end;
  25. THETA=linspace(0,2*pi,NOP);
  26. RHO=ones(1,NOP)*radius;
  27. [X,Y] = pol2cart(THETA,RHO);
  28. X=X+center(1);
  29. Y=Y+center(2);
  30. H=plot(X,Y,style);
  31. axis square;
复制代码

评分

1

查看全部评分

 楼主| 发表于 2008-4-18 15:52 | 显示全部楼层
各位高手我已经研究出来了,不是不知道加偏移量的问题,而是我用happy教授的方法画出来的是一个多边形,后来发现是900个园重叠了,改用for语句就解决了,不过圆不是那么圆。这也就可以了,谢谢各位!
发表于 2008-4-18 16:03 | 显示全部楼层

回复 12楼 的帖子

圆不圆的问题,试试后面加这个
axis square;
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-23 13:28 , Processed in 0.052563 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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