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个