% 给出各个点的坐标 'A01' = [-900, 1300]; 'A02' = [-600, 200]; 'A03' = [-400, 0]; 'A04' = [-100, 900]; 'A05' = [200, 500];

% 每两个点之间的垃圾箱数 'num_A01_A02' = 22; 'num_A01_A03' = 27; 'num_A01_A04' = 17; 'num_A01_A05' = 27; 'num_A02_A03' = 5; 'num_A02_A04' = 17; 'num_A02_A05' = 17; 'num_A03_A04' = 18; 'num_A03_A05' = 15; 'num_A04_A05' = 10;

% 计算每两个点之间的长度 'len_A01_A02' = norm('A01' - 'A02'); 'len_A01_A03' = norm('A01' - 'A03'); 'len_A01_A04' = norm('A01' - 'A04'); 'len_A01_A05' = norm('A01' - 'A05'); 'len_A02_A03' = norm('A02' - 'A03'); 'len_A02_A04' = norm('A02' - 'A04'); 'len_A02_A05' = norm('A02' - 'A05'); 'len_A03_A04' = norm('A03' - 'A04'); 'len_A03_A05' = norm('A03' - 'A05'); 'len_A04_A05' = norm('A04' - 'A05');

% 计算每个垃圾箱应该在哪个位置 'pos_A01_A02' = linspace(0, 'len_A01_A02', 'num_A01_A02' + 2); 'pos_A01_A03' = linspace(0, 'len_A01_A03', 'num_A01_A03' + 2); 'pos_A01_A04' = linspace(0, 'len_A01_A04', 'num_A01_A04' + 2); 'pos_A01_A05' = linspace(0, 'len_A01_A05', 'num_A01_A05' + 2); 'pos_A02_A03' = linspace(0, 'len_A02_A03', 'num_A02_A03' + 2); 'pos_A02_A04' = linspace(0, 'len_A02_A04', 'num_A02_A04' + 2); 'pos_A02_A05' = linspace(0, 'len_A02_A05', 'num_A02_A05' + 2); 'pos_A03_A04' = linspace(0, 'len_A03_A04', 'num_A03_A04' + 2); 'pos_A03_A05' = linspace(0, 'len_A03_A05', 'num_A03_A05' + 2); 'pos_A04_A05' = linspace(0, 'len_A04_A05', 'num_A04_A05' + 2);

% 计算每个垃圾箱的坐标 'coords' = []; for i = 1:'num_A01_A02' 'pos' = 'pos_A01_A02'(i+1); 'coords'(i,:) = 'A01' + ('A02' - 'A01') * ('pos' / 'len_A01_A02'); end for i = 1:'num_A01_A03' 'pos' = 'pos_A01_A03'(i+1); 'coords'(end+1,:) = 'A01' + ('A03' - 'A01') * ('pos' / 'len_A01_A03'); end for i = 1:'num_A01_A04' 'pos' = 'pos_A01_A04'(i+1); 'coords'(end+1,:) = 'A01' + ('A04' - 'A01') * ('pos' / 'len_A01_A04'); end for i = 1:'num_A01_A05' 'pos' = 'pos_A01_A05'(i+1); 'coords'(end+1,:) = 'A01' + ('A05' - 'A01') * ('pos' / 'len_A01_A05'); end for i = 1:'num_A02_A03' 'pos' = 'pos_A02_A03'(i+1); 'coords'(end+1,:) = 'A02' + ('A03' - 'A02') * ('pos' / 'len_A02_A03'); end for i = 1:'num_A02_A04' 'pos' = 'pos_A02_A04'(i+1); 'coords'(end+1,:) = 'A02' + ('A04' - 'A02') * ('pos' / 'len_A02_A04'); end for i = 1:'num_A02_A05' 'pos' = 'pos_A02_A05'(i+1); 'coords'(end+1,:) = 'A02' + ('A05' - 'A02') * ('pos' / 'len_A02_A05'); end for i = 1:'num_A03_A04' 'pos' = 'pos_A03_A04'(i+1); 'coords'(end+1,:) = 'A03' + ('A04' - 'A03') * ('pos' / 'len_A03_A04'); end for i = 1:'num_A03_A05' 'pos' = 'pos_A03_A05'(i+1); 'coords'(end+1,:) = 'A03' + ('A05' - 'A03') * ('pos' / 'len_A03_A05'); end for i = 1:'num_A04_A05' 'pos' = 'pos_A04_A05'(i+1); 'coords'(end+1,:) = 'A04' + ('A05' - 'A04') * ('pos' / 'len_A04_A05'); end

% 画出各个点的位置和连线 plot('A01'(1), 'A01'(2), 'ro'); hold on; plot('A02'(1), 'A02'(2), 'ro'); plot('A03'(1), 'A03'(2), 'ro'); plot('A04'(1), 'A04'(2), 'ro'); plot('A05'(1), 'A05'(2), 'ro'); line(['A01'(1), 'A02'(1)], ['A01'(2), 'A02'(2)]); line(['A01'(1), 'A03'(1)], ['A01'(2), 'A03'(2)]); line(['A01'(1), 'A04'(1)], ['A01'(2), 'A04'(2)]); line(['A01'(1), 'A05'(1)], ['A01'(2), 'A05'(2)]); line(['A02'(1), 'A03'(1)], ['A02'(2), 'A03'(2)]); line(['A02'(1), 'A04'(1)], ['A02'(2), 'A04'(2)]); line(['A02'(1), 'A05'(1)], ['A02'(2), 'A05'(2)]); line(['A03'(1), 'A04'(1)], ['A03'(2), 'A04'(2)]); line(['A03'(1), 'A05'(1)], ['A03'(2), 'A05'(2)]); line(['A04'(1), 'A05'(1)], ['A04'(2), 'A05'(2)]);

% 画出每个垃圾箱的位置 plot('coords'(:,1), 'coords'(:,2), 'b.');

Matlab 绘制垃圾箱分布图 - 基于已知坐标和距离

原文地址: https://www.cveoy.top/t/topic/occ9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录