-
Notifications
You must be signed in to change notification settings - Fork 0
/
point_point.m
38 lines (37 loc) · 2.05 KB
/
point_point.m
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
%任意工位点之间的距离
function point_point_dist = point_point(A,B,i,j)
%i表起始工位号
%j表示终止工位号
%A表示street_to_street的矩阵
%B表示load_to_street的矩阵
if ((B(i,1)==2 | B(i,1)==6 | B(i,1)==10) & (j==1 | j==2 | j==3 | j==4)) | ((B(i,1)==5 | B(i,1)==9) & (j==25 | j==26 | j==27 | j==28))
%如果起始工位点对应的关键点为E(2),I(6),M(10),或者终止工位点的值为1,2,3,4
%并且起始工位号对应的关键点为H(5),L(9)并且终止工位号为25,26,27,28时
D1 = A(1,B(i,1));%D1表示D到起始工位号对应的关键点的距离
D2 = B(i,3);%D2表示起始工位点到对应关键节点的距离
D3 =B(j,3);%D3表示终止工位点到对应关节点的距离
point_point_dist = (D1+D2)-D3;%起始工位点到终止工位点的总距离
else if ((B(j,1)==2 | B(j,1)==6 | B(j,1)==10) & (i==1 | i==2 | i==3 | i==4)) | ((B(j,1)==5 | B(j,1)==9) & (i==25 | i==26 | i==27 | i==28))
%如果终止工位点对应的关键点为E(2),I(6),M(10),或者起始工位点的值为1,2,3,4
%并且终止工位号对应的关键点为H(5),L(9)并且起始工位号为25,26,27,28时
D1 = A(1,B(j,1));%D1表示D到终止工位号对应的关键点的距离
D2 = B(j,3);%D2表示终止工位点到对应关键节点的距离
D3 =B(i,3);%D3表示起始工位点到对应关节点的距离
point_point_dist = (D1+D2)-D3;%起始工位点到终止工位点的总距离
else if (B(i,1)==B(j,1))
if ((i==1 | i==2 | i==3 | i==4) & (j==25 | j==26 | j==27 | j==28)) | ((i==25 | i==26 | i==27 | i==28) & (j==1 | j==2 | j==3 | j==4))
%如果起始点在1,2,3,4终止点在26,27,28,29,或者终止点在1,2,3,4起始点在26,27,28,29,则两距离相加
point_point_dist=B(j,3)+B(i,3);
else
%如果两个工位点所对应的关键节点相同,且关键起始点不在同一行,则直接相减
point_point_dist=abs(B(j,3)-B(i,3));
end
else
D1 = A(B(i,1),B(j,1));%D1表示起始工位号对应的关键点到终止工位点所对应的关键节点的距离
D2 = B(i,3);%D2表示起始工位点到对应关键节点的距离
D3 =B(j,3);%D3表示终止工位点到对应关节点的距离
point_point_dist = D1+D2+D3;%两个工位点的距离为三个距离之和
end
end
end
end