max_i = 200;
max_j = 200;
n = 0.5;
R = 2;
cdd = 0.01;
numtotal_need = (1 - n) * max_i * max_j;
arrgrid = zeros(max_i, max_j);
numsolid = 0;
Tnumsolid = numsolid;
while Tnumsolid < numtotal_need
x1 = randi(max_i, 1);
y1 = randi(max_j, 1);
p = pi/4;
if arrgrid(x1, y1) == 0
arrgrid(x1, y1) = 1;
numsolid = numsolid + 1;
for i = 1:max_i
for j = 1:max_j
A = [cos(p), sin(p)];
B = [(i-x1), (j-y1)];
c = norm(A) * norm(B) * sin(acos(dot(A, B) / (norm(A) * norm(B))));
if c < R && arrgrid(i, j) == 0
arrgrid(i, j) = 1;
numsolid = numsolid + 1;
end
end
end
end
Tnumsolid = numsolid;
end
x = 1:max_i;
y = 1:max_j;
figure;
scatter(x, y, 5, 'filled');
hold on;
contour(x, y, arrgrid, [1 1], 'k');
hold off;
axis equal;
xlabel('X');
ylabel('Y');
title('固相点分布');