-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDraw circles.m
More file actions
66 lines (53 loc) · 1.73 KB
/
Copy pathDraw circles.m
File metadata and controls
66 lines (53 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
width =1000;
height = 1000;
% The number of circles
% circleNumber = length(Huayuan);
circleNumber = length(Huayuan);
paras = zeros(circleNumber, 3);
num = 0;
hold on
while num < circleNumber
num=num+1;
%r = log(Huayuan(num,1));
r = Huayuan(num,1)/2;
% r = 1;
xPos = rand*(width-2*r) + r;
yPos = rand*(height-2*r) + r;
paras(num,:) = [xPos, yPos, r];
if num >= 1
xs = paras(1:num - 1, 1);
ys = paras(1:num - 1, 2);
rs = paras(1:num - 1, 3);
dist1 = sqrt((xPos - xs).^2 + (yPos - ys).^2);
dist2 = abs(r + rs);
if all(dist1 > dist2)
rectangle('Position', [xPos-r, yPos-r, 2*r, 2*r], 'Curvature', [1 1],'facecolor',Huayuan(num,2:4));
axis equal
else
temp = 0;
maxTry = 1000;
while any(dist1 <= dist2) && temp < maxTry
temp = temp + 1;
r = Huayuan(num,1)/2;
% r=1;
xPos = rand*(width-2*r) + r;
yPos = rand*(height-2*r) + r;
paras(num,:) = [xPos,yPos,r];
dist1 = sqrt((xPos - xs).^2 + (yPos - ys).^2);
dist2 = abs(r + rs);
end
if all(dist1 > dist2)
rectangle('Position', [xPos-r, yPos-r, 2*r, 2*r], 'Curvature', [1 1],'facecolor',Huayuan(num,2:4));
axis equal
end
end
end
set(gca,'LineWidth',2);
set(gca,'XTick',[0:200:1000]);
set(gca,'XLim',[0 1000]);
set(gca,'YTick',[0:200:1000]);
set(gca,'YLim',[0 1000]);
set(gca,'FontName','Arial','FontSize',15)
end
box on
hold on