You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
541 B
Matlab

function I=define_circle(len,wid,curve);
maxdiam=odd(len,1);
offset=(curve-len)/2;
[x y]=meshgrid(offset-1:maxdiam+offset,fix(-maxdiam/2)-1:fix(maxdiam/2)+1);
radius=sqrt(x.^2+y.^2);
I=exp((-(radius-(curve/2)).^2)./(0.5*wid.^2));
maxlen=odd(len,1);
minlen=odd(len,0);
cent=ceil((maxlen+2)/2);
valid=zeros(size(I));
lenval=(len-max(0,minlen));
if minlen>=1; lenval=lenval/2; end
hlen=floor(maxlen/2);
valid(cent-hlen:cent+hlen,cent-hlen:cent+hlen)=lenval;
hlen=floor(minlen/2);
valid(cent-hlen:cent+hlen,cent-hlen:cent+hlen)=1;
I=I.*valid;