1、自来水管道连接问题摘要 自来水是人们日常生活中不可缺少的生活要素,然而自来水管网的组建却有 很多问题需要解决。一般来说,我们假设管网中任意两个用户之间存在直线段相连,但是在连接过程中,有些区域是必须绕开的,这些必须绕开的区域我们称为障碍区域。为了节约成本,需要找到最优的连通路线,使距离最短。对于问题一,为判断各点是否为有效用户,利用角度的方法来找出在障碍区内的无效用户。首先由所给信息在坐标系中画出所有用户点及障碍区顶点坐标,再找出能够包围障碍区域的最小矩形。考虑矩形中各点,将该点与障碍区域各顶点依次连接,算出相邻两条线段之间的交角1,2,3,(i180)并算得它们的总和为。若360,则该点不再
2、障碍区域内,即为有效用户;若=360,则该点在障碍区域内,即为无效用户。最后确定了第4,23,36,99号点处在障碍区域内,为无效用户,其余所有点为有效用户。对于问题二,应用最优化模型来求最小连通距离。先通过障碍区域顶点与用户点的直线方程筛选有效用户之间的有效线段,构造有效线段的带权临接矩阵,将无效线段的距离赋值无穷大,利用带权临接矩阵,使用Kruskal最小生成树算法解出最小连通图,并解得最小连通距离为。最后,对模型进行了分析,并对此做出了改进。考虑到两有效用户点之间可以用通过第三点的折线连接而使线路更短。在第一步改进中,先分别加入障碍区的十四个顶点中的一个再次生成有效线段的带权临接矩阵,求
3、得各自的最小连通距离。在这十四个距离中,最小值为643.8404。接下来加入十四个障碍区域顶点中的两个顶点后发现都比加入一个顶点时距离要长。分析加入多个顶点距离变大的原因后,确定应加入区域四的顶点3(90,75)获得最小距离。在上步改进基础上进行第二步改进,对连接线路中两相邻线段的夹角进行分析,当且仅当夹角为锐角时,可作较短边上的高以代替较长边,此时该三个有效用户点仍然连通,而路径长度可以大大缩小。对此改进方法进行模型求解,最终确定了最优路径。关键字:管道连接 内外点角度判断 最小生成树 Kruskal 权值矩阵 1目录第一部分:问题重述 问题一 问题二第二部分:问题分析 问题一 问题二第三部
4、分:模型假设第四部分:符号说明第五部分:模型的建立与求解 5.1 问题一的模型建立与求解 5.1.1 在坐标系中画出各用户点及障碍区域的图像5.1.2 作出包含各障碍区域的最小矩形,找出其中的用户点5.1.3 矩形区域中,求用户点与障碍区顶点连线间夹角并求和5.1.4 判断有效用户点5.1.5 模型求解 5.2 问题二的模型建立与求解 5.2.1 筛选有效用户间的有效线段 5.2.2 用最小生成树连接有效线段 5.2.3 模型求解第六部分:模型检验第七部分:模型的优缺点分析第八部分:模型的推广与改进参考文献附录2 一 问题重述自来水是人们日常生活中不可缺少的生活要素,然而自来水管网的组建却有
5、很多问题需要解决。一般来说,我们假设管网中任意两个用户之间存在直线段相连,但是在连接过程中,有些区域是必须绕开的,这些必须绕开的区域我们称为障碍区域。问题一:本题给出了若干个可能的用户的地址的横纵坐标,以及各个障碍区域的顶点坐标(见附录),我们需要根据这些数据信息确定出哪些用户为有效用户。可能的用户的含义是:如果用户的地址不在障碍区域内,那么该用户就是需要使用自来水的用户(即有效用户),否则如果用户的地址在障碍区域内,那么该用户就是无效用户。已知障碍区域各顶点坐标,对应障碍区域就是覆盖这些要覆盖的点的最小凸集。问题二:在找出所有有效用户后,设计一个算法,避开障碍区域,将有效用户全部连接起来,使
6、连接的距离总和最小。二 问题分析本问题主要根据各用户和障碍区的数据信息,对各用户点进行检测,找出有效用户的点,再设计一个算法,将全部有效用户连接起来,使得路径不经过障碍区域,并且连接路线总和最小。问题一:根据题目可知,当用户点在障碍区域外时,为有效用户;当用户点在障碍区域内时,为无效用户。为找出所有的有效用户点,可将目标区域缩小。分别作出包含各障碍区域的最小矩形,考虑对矩形区域中的用户点,将该点与障碍区域各顶点按顺序依次连接,再算出相邻两条线段的交角1,2,3,(i180)并算得它们的总和为。若360,则该点不再障碍区域内,即为有效用户;若=360,则该点在障碍区域内,即为无效用户。问题二:解
7、决问题2需要两步。第一需筛选有效用户之间的有效线段。将任意两个有效用户用线段连接,如果任意两个用户点之间的线段通过障碍区域之内,则为无效线段,作剔除处理,筛选出有效线段。第二步,根据筛选出来的有效用户点和有效线段生成最小生成树连接有效用户点,画出连接路线图形,并计算生成树长度。 接下来需要设计程序将所有有效用户点连接起来,并使管道总距离最小。但相较以往最小生成树问题又有着其特别之处,就是障碍区域的干扰,即管道无法穿过障碍区,这使得坐标系并非是一个连通区域。可以将穿过障碍区的线段赋权值为无穷大,利用Kruskal算法,生成最优路径。 三 模型假设1.假设所给数据全部真实可靠。32.任何两个用户点
8、之间都可以直接连接。3.不在障碍区里的用户都能够通过自来水管获得自来水供应。4.假设障碍区域的边界是标准的直线。5.障碍区域就是障碍顶点围成的凸多边形区域。7.要保证在任意两点间线段不过障碍区的情况下求解连接形成的最短路线。 四 符号约束与说明符号 说明(xi,yi) i=1,2,3.障碍区域各顶点坐标(ai,bi) i=1,2,3各用户点的坐标i, i=1,2,3用户点与障碍区顶点各相邻连线的夹角 (i180时,取其为360-i所有夹角之和i (k,j)区域i中第k个点的j个角N有效用户点的个数NUM记录任意两用户点之间可用线段连接起来且不过障碍区的线段DIS连接的长度M最小生成树的点以及连
9、接的信息Sum最小生成树管道的总长Inf邻接矩阵中对应无效线段的位置的值 五 模型的建立与求解5.1.问题一的模型建立与求解 4本题已知各用户点与障碍区域的坐标信息,可应用角度的方法判断哪些为有效用户。分为四个步骤:一是先在坐标系中描出各用户点及障碍区顶点坐标。二是由各障碍区域顶点作出包含该区域的最小矩形,并找出矩形区域内的用户点。三是将矩形区域中某用户点与对应区域顶点连线,并求出相邻两条线段的交角1,2,3(i180)四是将这些角度加和得,若=360,说明该用户点在障碍区域内,为无效用户;若360,说明该用户点在障碍区域外,为有效用户。5.1.1在坐标系中画出各用户点及障碍区域的图像根据题目
10、中给出的各用户点和各障碍区域顶点的坐标信息,在matlab中编出程序(见附录),可得如下图像:图一 障碍区域与各用户点示意图5.1.2 作出包含各障碍区域的最小矩形,并找出其中的用户点设某障碍区域各顶点坐标为 A(x1,y1),B(x2,y2),C(x3,y3) 5则取p=min(x1,x2,x3) q=max(x1,x2,x3)r=min(y1,y2,y3) s=max(y1,y2,y3)故包含该障碍区域的最小矩形即为 X=p,X=q,Y=r,Y=s四条直线所围成的矩形。对于任意用户点M(x,y),若满足pxq,rys,则M点就在矩形区域内,否则,M点不在矩形区域内。在matlab编出程序运
11、行(见附录),可得到图像,如下图所示: 图二 包含障碍区的最小矩形记矩形从左到右依次为区域一,二,三,四,通过比较在最小矩形区域的条件,得到在各个区域的内点和边界点,用MATLAB编程(见附录III)可得如下表格:(共计16个点)表一:区域一区域二区域三区域四最小矩形内点标号9967,22,16,36,33,4,5435,83,7790,23,89,37,84标号对应的坐标(6.4781,17.0793)(34.1971,36.7568)(35.2868,30.4999)(40.5706,56.7829)(41.8649,41.1953)(44.5096,32.0036)(48.5982,33
12、.3951)(54.1674,31.2685)(46.5994,72.6632)(52.2590,71.5883)(54.6571,69.9213)(73.7306,90.8398)(81.3166,87.4367)(87.5742,80.4872)(84.6221,74.4566)(88.0142,89.2842)5.1.3 将矩形区域中用户点与障碍区顶点连线,求各相邻连线间夹角并求和设矩形区域内某个用户点坐标为M(a,b),M与障碍区域各顶点连线后,某相邻两条线断分别为MA,MB.设A点坐标(x1,y1),B点坐标(x2,y2),则向量MA=(x1-a,y1-b),向量MB=(x2-a,y
13、2-b),MA与MB的内积为MAMB=| MA|MB| cos则=用matlab编写程序实现算法(见附录),可得如下示意图(以包含五边形障碍区的矩形中两点G,F为例)点G分别与五边形的顶点A,B,C,D,E相连见洋红色连线,记AGB, BGC, CGD, DGE, EGA分别为2(4,1),2(4,2),2(4,3),2(4,4), 2(4,5).点F与五边形的顶点A,B,C,D,E相连见蓝绿色连线.记为DFE,EFA,AFB,BFC. 分别为2(1,1), 2(1,2),2(1,3),2(1,4),2(1,5). 7 图三 用户点与障碍区顶点连线用MATLAB分别按区域一,区域二,区域三,区
14、域四中各点与顶点的夹角(必须是相邻两边且角度小于180)记为i (k,j)。以表一中最小矩形内的点按从左到右从上到下的顺序按区域标记为1,2,3依次类推。得到表二:区域点标号指定角弧度角度求和一991(1,1)2.4398139.7902360.01801 (1,2)1.9431111.33141 (1,3)1.9006108.8964二672 (1,1)0.943154.0356258.38102 (1,2)0.473227.11242 (1,3)0.13097.50002 (1,4)0.707640.54252 (1,5)2.2548129.1905222 (2,1)0.805346.14
15、03207.7487二2(2,2)0.387322.19072 (2,3)0.11786.74942 (2,4)0.502528.79112 (2,5)1.8130103.8772162 (3,1)0.668338.2908232.31152 (3,2)0.616935.34582 (3,3)0.233613.38432 (3,4)1.7937102.77142 (3,5)0.742142.5192362 (4,1)1.490585.3994360.00102 (4,2)0.715240.97802 (4,3)0.225212.90302 (4,4)1.8144103.95752 (4,5)2
16、.0379116.7631332 (5,1)1.408980.7240330.32152 (5,2)0.416023.83502 (5,3)0.15328.77772 (5,4)0.904551.82402 (5,5)2.8826165.160842 (6,1)2.4205138.6844359.99502 (6,2)0.400022.91832 (6,3)0.16449.41942 (6,4)0.938653.77782 (6,5)2.3596135.1951542 (7,1)1.8418105.5274211.05472 (7,2)0.248814.25522 (7,3)0.14248.1
17、5892 (7,4)0.766543.91722 (7,5)0.684139.1960三353 (1,1)1.497585.8004211.36993 (1,2)1.8445105.68213 (1,3)0.347119.8874833 (2,1)2.0674118.4533310.92703 (2,2)2.7133155.46063 (2,3)0.646037.0131773 (3,1)0.526630.1720130.16463 (3,2)1.135965.08233 (3,3)0.609334.9103四904 (1,1)1.357977.8020285.11534 (1,2)1.130
18、264.75574 (1,3)2.4881142.5576234 (2,1)2.7044154.9507359.99514 (2,2)1.598991.61024 (2,3)1.9798113.4342894 (3,1)3.0768176.2877352.57534 (3,2)1.9593112.25964 (3,3)1.117564.0280374 (4,1)1.691496.9101306.93354 (4,2)2.6785153.46674 (4,3)0.987156.5567844 (5,1)2.3285133.4132266.82664 (5,2)1.233170.65144 (5,
19、3)1.095462.76185.1.4判断有效用户点由题目所给信息,障碍区域最多为五边形,下面对三、四、五边形,就利用角度判断障碍区域内外点的方法给出证明。 三角形 四边形 五边形(1) 三角形情况: 9内点D与顶点A,B,C分别连接得向量DA,DB,DC,各相邻两向量的夹角分别为1,2,3,将ABC分成ADB,ADC,BDC,由三角形内角和为180,则1+2+3=3180-180=360。 外点E与顶点A,B,C分别连接得向量EA,EB,EC, 取相邻两向量的夹角分别为1,2,EA,EB相邻时AEB180时角度相加依然会小于360。即记为1+2+AEB360。(2)四边形,五边形情况类似讨
20、论。所以若360,则该点不再障碍区域内,即为有效用户;若=360,则该点在障碍区域内,即为无效用户。5.1.5模型求解由以上分析,当用户点对应的全部夹角和=360(近似)时,该点为无效用户;否则,该点为有效用户。在夹角的计算过程中,存在四舍五入的情况,会产生微小误差,所以近似360度就可认为是无效用户。 现对1.3中表二的数据进行分析,可以看出,标号为4,23,36,99的点处,近似为360,故第4,23,36,99号点处在障碍区域内,为无效用户,其余所有点不在障碍区域内,为有效用户。找出无效用户后,再作出障碍区域与各用户点的图像如下:(其中红点表示无效用户) 图四 障碍区中的无效用户 105
21、.2问题二的模型建立与求解为了求出将所有用户连接起来,并且路程最短的方法,应当将问题分为两步:一、筛选有效用户之间的有效线段;二、将有效用户用有效线段连接起来,并且连接的距离总和最小。5.2.1筛选有效用户间的有效线段(1)运用矩阵的方法求解两直线之间的交点坐标 如果任意两个有效用户点的坐标分别为A(x1,y1)、B(x2,y2),同一障碍区任意两个顶点坐标为M(x3,y3)、N(x4,y4)。则两直线方程分别为:(1)(2);则由解线性方程组的方法有,线性方程组的的系数矩阵为: ;在运用Matlab求解该线性方程组时,不妨把 分别设为: 可以求得=A。(2)判断线段是否为有效线段若求得的交点
22、坐标为P(x ,y),则通过向量关系PM=PN,可以求的。若0,则该线段为有效线段;若0,则要考虑向量关系PA=PB,若0,则该线段为有效线段,否则,该线段为无效线段。5.2.2用最小生成树连接有效线段若要在N个用户之间连接自来水管道,由于每一个用户与其余N-1个用户之间都可能连接自来水管道。因此,在N个用户之间,最多可能连接N(N-1)/2条自来水管道然而,在连接N个用户之间的管道时,最少只需连接N-1条管道。也就是说只需要N-1条管道线路就可以把N个用户之间的自来水管道连通。现在要考虑在连接N个用户的自来水管道的同时要保证所有的管道长度之和最短,这就涉及了最优化的问题。利用Kruskal算
23、法思想设计Matlab程序进行最小生成树所需边的筛选,并且设计算法将筛选出来的构成最小生成树的各边连接起来,求出最短路径长度,并画出连接图形。现利用Kruskal算法思想求解最小生成树设计96个用户之间的带权图,并作出邻接矩阵DIS,再根据求得的有效线段 11与无效线段对邻接矩阵进行修改,将邻接矩阵中对应无效线段的位置赋值无穷大,可以得到一个新的邻接矩阵DIS。接下来,用冒泡排序法对所有有效线段长度按从小到大的顺序进行排序。这时,需要借助Kruskal算法进行最小生成树的计算。然后把最小生成树对应边的线段长度、起点、终点信息记录在矩阵EE中。生成最小生成树时,从长度最短的边开始选取。首先不妨设
24、一个196的标记向量l用于记录被选取的点的序号,初始状态向量l的各元素依次为各用户序号,在选取线段为边后,将对应两点的序号m与n取最小值,并将向量l中所有与m位置元素相等的元素位置及所有与n位置的元素相等的元素位置都赋值为该最小值,如此循环知道向量l中所有元素均相等时停止;同时可以设一向量R来依次记录被选点的序号,直到所有用户点被无重复地被记录。在按线段长度从小到大的顺序选择边时,设线段端点用户的序号为m与n。这时需要考虑如下4种情况:如果在向量R中m和n均没有被记录,则该线段可以被选为最小生成树的边,将对应线段的信息记录在矩阵EE中,同时在R中添加记录m和n的值,并按照上述步骤更新向量l。如
25、果在向量R中m被记录而n没有被记录,则该线段可以被选为最小生成树的边,将对应线段的信息记录在矩阵M中,同时在R中添加记录n的值,并按照上述步骤更新向量l。如果在向量R中n被记录而m没有被记录,则该线段可以被选为最小生成树的边,将对应线段的信息记录在矩阵EE中,同时在R中添加记录m的值,并按照上述步骤更新向量l。如果在向量R中m和n均被记录,则需要借助向量l来判断是否该线段可以被选为最小生成树的边:a. 如果向量l中对应的m位置与n位置的元素值相等,则该线段不是最小生成树的边,直接跳过到下一步判断。b. 如果向量l中对应的m位置与n位置的元素值不相等,则该线段是最小生成树的边,将对应线段的信息记
26、录在矩阵M中,同时只需要更新向量l。通过上述方法,即可产生最小生成树,其各边信息记录在矩阵M中。 5.2.3 模型求解设计Matlab程序求出最小生成树长度并将各边连接起来(见附录) 要计算最小生成树的长度只需要借助for循环将EE矩阵中记录长度相加即可。可以求得最小生成树的长度为sum= 最后借助plot函数画出最小生成树的图形,如下所示 12 图五 最小生成树生成图六 模型检验可以通过对所画最小生成树图形的观察看是否有回路由图易知图形中无回路则通过修改最小生成树中任意边的连接并计算修改后的最小生成树的长度sum与sum进行比较。可得sumsum,则该模型所生成的最小生成树的长度最短即运用该
27、模型进行自来水管道的连接所需要的自来水管长度最短。七 模型的优缺点分析7.1优点:(1)在判断有效用户点时,将所有可能的无效用户限制在各个矩形区域内,缩小了查找的范围,使求解过程变得简洁,易操作。(2)巧妙的利用了内外点角度关系,直接将求得的角度和与360比较,可以清晰地看出用户点是否在障碍区域内,从而找出无效用户。7.2缺点:(1)在判断有效用户点过程中,所使用的角度方法只适用于障碍区域为凸多边形的情况,具有一定的局限性。(2)在计算各相邻线段交角以及由弧度制转化为角度制时,进行了四舍五入,故所得的角度和与360无法严格相等,会产生一定的微小偏差。 13(3)在用最小生成树求解最短路问题的模
28、型中,路径都是用由有效用户点为端点的线段连接的,然而在实际情况下,当加入障碍区顶点或者其他一些点后,可能会使路径更短。八 模型的推广与改进为了得到能够遍历所有有效用户点的最短连通线路,在用最小生成树求得的最短路问题解的基础上,有必要对本模型作进一步改进,以使连通距离更短。由于本题连接路径是用由有效用户点为端点的线段连接的,然而在实际情况中,可加入第三个点,使两有效用户点之间用通过第三点的折线连接,由此得到的水管道总长可能会更短。 8.1模型的第一步改进:由于障碍区域的存在,可以使用以下方法:在障碍区14个顶点中,任选其中一个加入96个有效用户点中,并再次进行有效性判断生成新的邻接矩阵。按照上述
29、算法,就可得到一个新的距离,将矩阵A多加一行程序和上面的一样。8.2模型的第一步改进求解经计算可得加入14个点后,新的连通总长如图 图六 加入多个障碍顶点经计算可得最小值为643.8404。距离和小于加入障碍点之前距离和的点只有一个。优化后的最小连通图如下 14 图七 一个顶点时的最小生成树进而,不妨考虑有多个点加入形成折线的情况。首先考虑加入两个点:在障碍物14个顶点中,任选其中两个加入96个有效用户点中,并再次进行有效性判断生成新的邻接矩阵。迭代91次求出最小距离。加入两点后,最短距离并没有减小。那是因为:1.加入更多的点后会需要将新的点连通至图中,会增加连通距离;2. 结果可知有且只有一
30、个障碍点能在加入后减少系统的连通距离。 由上分析可得,加入更多障碍点后,连通距离只可能增加,不可能减少。所以,最终的最优结果如图七所示。8.3模型的第二步改进分析 当三点连接,由几何知识可知以其中一点为分叉点并不是最优的,产生的距离依然较向其中临边向另一顶点做垂线较大,故上述方法可以进一步改进。8.3.1判断是否做垂线的依据:分三种情况讨论:当两邻边夹角为锐角,直角,钝角情况: 锐角情况 直角情况 钝角情况(1)锐角情况:由图可知ABC为锐角,在RtABD中斜边大于直角边,即ABAD, 15则AB+BCAD+BC.其中考虑ABBC情况,应该在BC边上作垂线,若AB=BC则在哪个边上作都一样。(
31、2)直角情况:作RtABC,AF为钭边BC的高.作BAF的平分线AD交斜边BC于D.作DEAC于E,则ADFADE.AF=AE,ADE=ADF.又ED/AB,AEF=CAD,故BAD=BDA. BA=BD CED=90度,CDCE. BC+AFAB+AC.(3)钝角情况:在钝角里边加入一个直角见RtACE由结论(2)可得AD+BEAB+AE;方程两边同时加上EC,即有:AD+BE+ECAB+AE+ECAD+BCAB+(AE+EC) AD+BCAB+AC由以上证明可知当锐角情况时应该作垂线,在直角和钝角情况时不用作垂线。8.3.2由图七做出的最小生成树判断三点之间的连线钝角,锐角,直角情况:如下
32、表是通过编程计算出来的分叉点与其临边的夹角情况:.找出其中的锐角,设其为,如上图锐角情况所示:如果ABAC,则AB+AC可由AB sin+AC替换。路径变短。 168.3.3模型推广:该模型可以转变为天然气管道的输送问题,最短路线即最小成本。也可以用来模拟警察以最短路线赶往事发现场。九参考文献【1】周本虎 瞿勇 李薇 熊萍 MATLAB与数学建模 第一版 中国农业出版社 2007年10月【2】严蔚敏 吴伟民 数据结构(C语言版)第一版 清华大学出版社1997年4月【3】胡良剑 孙晓君 MATLAB数学实验 第一版 高等教育出版社2006年6月附录:附录一:画出最原始的离散图的算法:x1=3.2
33、060 17.4571 4.7576 3.2060;%障碍1横坐标y1=12.9166 19.3377 20 12.9166;%障碍1纵坐标plot(x1,y1,b) %显示障碍区域1 hold onx2=33.3207,43.1123,46.9222,53.7465,50,33.3207;%障碍2横坐标y2=39.8050,56.3187,57.1195,48.4490,30,39.8050;%障碍2纵坐标 plot(x2,y2,b) %显示障碍区域2 hold on 17x3= 54.6982 53.7465 46.9222 54.6982;%障碍3横坐标y3=70 90 80 70;%障
34、碍3纵坐标 plot(x3,y3,b) %显示障碍区域3 hold onx4=90 80 70 90;%障碍4横坐标y4=75 95 80 75;%障碍4纵坐标plot(x4,y4,b) %显示障碍区域3 hold onx为100位居民用户的横纵坐标plot(x,y,b.)附录二:hold onx1=3.2060 17.4571 4.7576 ;%障碍1横坐标y1=12.9166 19.3377 20 ;%障碍1纵坐标x=min(x1),min(x1),y=min(y1),max(y1);plot(x,y,r)hold onx1=3.2060 17.4571 4.7576 ;%障碍1横坐标y1
35、=12.9166 19.3377 20 ;%障碍1纵坐标x=max(x1),max(x1),y=min(y1),max(y1);plot(x,y,r)hold onx1=3.2060 17.4571 4.7576 ;%障碍1横坐标y1=12.9166 19.3377 20 ;%障碍1纵坐标x=min(x1),max(x1),y=min(y1),min(y1)plot(x,y,r)hold onx1=3.2060 17.4571 4.7576 ;%障碍1横坐标y1=12.9166 19.3377 20 ;%障碍1纵坐标x=min(x1),max(x1),y=max(y1),max(y1)plot
36、(x,y,r)hold onx2=33.3207,43.1123,46.9222,53.7465,50,33.3207;%障碍2横坐标y2=39.8050,56.3187,57.1195,48.4490,30,39.8050;%障碍2纵坐标 18x=min(x2),min(x2),y=min(y2),max(y2);plot(x,y,r)hold onx2=33.3207,43.1123,46.9222,53.7465,50,33.3207;%障碍2横坐标y2=39.8050,56.3187,57.1195,48.4490,30,39.8050;%障碍2纵坐标x=max(x2),max(x2)
37、,y=min(y2),max(y2);plot(x,y,r)hold onx2=33.3207,43.1123,46.9222,53.7465,50,33.3207;%障碍2横坐标y2=39.8050,56.3187,57.1195,48.4490,30,39.8050;%障碍2纵坐标x=min(x2),max(x2),y=min(y2),min(y2)plot(x,y,r)hold onx2=33.3207,43.1123,46.9222,53.7465,50,33.3207;%障碍2横坐标y2=39.8050,56.3187,57.1195,48.4490,30,39.8050;%障碍2纵
38、坐标x=min(x2),max(x2),y=max(y2),max(y2)plot(x,y,r)hold onx3= 54.6982 53.7465 46.9222 54.6982;%障碍3横坐标y3=70 90 80 70;%障碍3纵坐标x=min(x3),min(x3),y=min(y3),max(y3);plot(x,y,r)hold onx3= 54.6982 53.7465 46.9222 54.6982;%障碍3横坐标y3=70 90 80 70;%障碍3纵坐标x=max(x3),max(x3),y=min(y3),max(y3);plot(x,y,r)hold onx3= 54.
39、6982 53.7465 46.9222 54.6982;%障碍3横坐标y3=70 90 80 70;%障碍3纵坐标x=min(x3),max(x3),y=min(y3),min(y3)plot(x,y,r)hold onx3= 54.6982 53.7465 46.9222 54.6982;%障碍3横坐标y3=70 90 80 70;%障碍3纵坐标x=min(x3),max(x3),y=max(y3),max(y3) 19plot(x,y,r)hold onx4=90 80 70 90;%障碍4横坐标y4=75 95 80 75;%障碍4纵坐标x=min(x4),min(x4),y=min(y4),max(y4);plot(x,y,r)hold onx4=90 80 70 90;%障碍4横坐标y4=75 95 80 75;%障碍4纵坐标x=max(x4),max(x4),y=min(y4),max(y4);plot(x,y,r)hold onx4=90 80 70