• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab画矩形和matlab画圆

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

matlab画圆:

注:

  • 已知圆心和半径。
m=80;
x=newdata(m).center(1);
y=newdata(m).center(2);
r=20;
figure(73);hold on;rectangle(\'Position\',[x-r,y-r,2*r,2*r],\'Curvature\',[1,1],\'linewidth\',1,\'edgecolor\',\'r\'),axis equal

 

首先介绍一下rectangle函数

1.rectangle函数实际上是一个画矩形的行数,语法调用为:

rectangle(\'Position\',[x,y,w,h]),表示的是从左下角点(x,y)开始画一个宽w高h的矩形。默认情况下是从(0,0)开始画一个宽1高1的矩形。例如直接在命令窗口出入:rectangle,axis equal  画出的图形如下图所示。(axis equal的意思是保持横纵坐标等比例)

2.

rectangle函数可以制定矩形边的曲率,这就为我们画圆提供了一个思路。改变曲率的参数是\'Curvature\',[x,y]  ,先改变一下曲率画个试试。在matlab命令窗口中输入如下命令:

rectangle(\'Position\',[0,0,1,1],\'Curvature\',[0.5,0.8]),axis equal

3.

要画圆的话只需要将曲率设置成1就行了。注意\'Curvature\',[0.5,0.8]后面的两个参数[0.5,0.8]分别表示两个边的曲率。画一个圆试试,输入命令如下:

rectangle(\'Position\',[0,0,1,1],\'Curvature\',[1,1]),axis equal;

4.

直接画圆已经可以了,下一步就是指定圆形坐标和半径了。我们不妨先分析一下:

1.rectangle函数本来画的是矩形,可以指定初始位置坐标和半径。如果要画圆首先要把曲率都设置成1;

2.从上一部的图中可以看出画出的圆是曲率为0时矩形的内切圆,所以这里参数的长和宽都等于2倍的半径,即w=h=2r;

3.下面是圆心,可以通过设置初始位置坐标来实现,圆心就是初始位置坐标(x,y)均加上半径r。所以如果已知圆心坐标(x,y)和半径r画圆的话,rectangle函数的未知参数应该为  \'Position\',[x-r,y-r,2*r,2*r] 。

4.

matlab画任意位置的圆。例如要画一组圆,已知圆心坐标和半径。

x,y,r

1,1,3

0,4,2

5,4,1

matlab程序:

rectangle(\'Position\',[-2,-2,6,6],\'Curvature\',[1,1]),axis equal

rectangle(\'Position\',[-2,2,4,4],\'Curvature\',[1,1]),axis equal

rectangle(\'Position\',[4,3,2,2],\'Curvature\',[1,1],\'edgecolor\',\'r\'),axis equal  %加上颜色信息

 
 
 
 

        今天在用MATLAB编程的时候,用到了已知圆心和半径,画圆的程序,上网搜了一下,主要有下面两种,在这里总结一下:(这里我都是放在函数中做的,想画多个圆的话可以加个for循环调用一下函数,或者直接用向量做都是可以的,在这里我不在多说)

第一种:

function [] = circle( x,y,r )
rectangle(\'Position\',[x-r,y-r,2*r,2*r],\'Curvature\',[1,1],\'linewidth\',1),axis equal
end
       rectangle这个函数有兴趣的可以查一下,这个是画矩形的函数,这里我们把曲率设置成1,画出来的是圆,但是这种方法没有办法改变话圆的颜色,不是填充色,而是圆外轮廓的颜色,至今我还没找到方法。如果有知道的可以给我评论下,谢谢啦

补充: rectangle改变圆外轮廓的颜色:在函数中加入\'EdgeColor\', \'w\',这个是看到评论中说可以改变,但是我现在没有环境,没法测试,感兴趣的朋友可以试一下,感谢评论留言的小伙伴。

第二种:

function [] = plot1( x,y,r )
theta=0:0.1:2*pi;
Circle1=x+r*cos(theta);
Circle2=y+r*sin(theta);
c=[123,14,52];
plot(Circle1,Circle2,\'c\',\'linewidth\',1);
axis equal
end
这种是利用圆的参数方程做的,效果比上面的好,但是比上面的麻烦了一点

 

补充:看到有评论说可以用MATLAB里自带的工具画圆,但是我现在没有工具,无法进行测试,但是在这里还是补充上,感兴趣的朋友可以试一下:

 

viscircles(centers,radii)

原文:https://blog.csdn.net/ZLK961543260/article/details/70216089

 
 
 
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphi中的TCollection发布时间:2022-07-18
下一篇:
在Delphi中判断一个字符是中文的方法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap