matlab随机圆的生成方法

问题描述:

matlab随机圆的生成方法
在一张图片中取随机圆(圆心、半径都随机),在圆上的像素点保留,其他的丢弃.这个程序应该怎样写?
1个回答 分类:综合 2014-12-05

问题解答:

我来补答
%算法为:
%1)在指定圆的最小外切正方形内均匀布n个点
%2)删除圆外的m个点
%3)重复1、2步骤,每次重复1时的布置点数n为上一次删除点数m
%因为正方形的面积与圆面积之比为pi/4约为0.75
%循环第二次时删除的点数m就仅为0.0625*需要点数,收敛快.
n=1000;%总点数
r=5;%半径
x=2*r*rand(1,n)-r;%开始构造随机点
y=2*r*rand(1,n)-r;
index=find(x.^2+y.^2>r.^2);
len=length(index);
x(index)=[];
y(index)=[];
while len
xt=2*r*rand(1,len)-r;
yt=2*r*rand(1,len)-r;
index=find(xt.^2+yt.^2>r.^2);
len=length(index);
xt(index)=[];
yt(index)=[];
x=[x xt];
y=[y yt];
end
plot(x,y,'ro')
axis equal
求采纳为满意回答.
 
 
展开全文阅读
剩余:2000
上一页:第9题老师
下一页:jst