中点画圆算法matlab,使用MATLAB在给定矩形区域随机绘制任意个不相交的圆

MATLAB操作简单,上手容易,编写算法也快,最近朋友在学习MATLAB,作为使用了matlab六七年的我,写篇博客来解决一下他提出的问题。

如题目所示,给定区域随机生成,这是两个问题,但是在MATLAB中,使用一条函数来解决:X=X1+(X2-X1)*rand,这样就能生成一条从X1点到X2点的随机数,平面区域的话,增加一个维度就可以。

任意个:每一个运行函数肯定不是任意的,给定一个参数N,来表示每次要生成的圆的个数。

不相交的圆,判断条件为圆心距离大于2*R(R为给定半径)。

如何使用圆心和半径来绘制一个圆:百度得到使用rectangle函数。rectangle函数实际上是一个画矩形的行数,要注意两个参数设置就可以了:(1)rectangle('Position',[x,y,w,h]),表示的是下哦那个点(x,y)开始画一个宽w高h的矩形。默认情况下是从(0,0)开始画一个宽1高1的矩形;(2)rectangle函数可以制定矩形边的曲率,改变曲率的参数是'Curvature',[x,y]  ,要画圆的话只需要将曲率设置成1就行了,两边曲率都要设置为1。于是类似这样:

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

完成一个标准的圆。如果已知圆心坐标(x,y)和半径r画圆的话,rectangle函数的未知参数应该为  'Position',[x-r,y-r,2*r,2*r] 。

整体思路为:1.先生成间距大于2*R的N个

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值