阿伟看到了一本比较有趣的书,是关于《计算几何》的,2008年由北清派出版。很好奇
它里面讲了些什么,就来看看啦。
正剧开始:
星历2016年09月22日 10:58:47, 银河系厄尔斯星球*江南行省。
[工程师阿伟]正在和[机器小伟]一起研究[计算几何]]。
给出一批线段,它们之间有一些交点,根据交点拆分出更多线段
<span style="font-size:18px;"># >>> 102 [[[-10, -9], [-0.51, 2.38]], [[-0.51, 2.38], [-0.37, 2.56]], [[-0.37, 2.56], [0, 3]], [[-2, -9], [1.2, -6.6]], [[1.2, -6.6], [2, -6]], [[2, -6], [5.09, -3.68]], [[5.09, -3.68], [5.56, -3.33]], [[5.56, -3.33], [6, -3]], [[-2, -9], [-1.38, -5.31]], [[-1.38, -5.31], [-1.27, -4.64]], [[-1.27, -4.64], [-0.15, 2.11]], [[-0.15, 2.11], [-0.12, 2.28]], [[-0.12, 2.28], [0, 3]], [[-2, -9], [-0.86, -5.57]], [[-0.86, -5.57], [-0.4, -4.2]], [[-0.4, -4.2], [1, 0]], [[1, 0], [1.24, 0.72]], [[1.24, 0.72], [1.33, 1]], [[1.33, 1], [1.5, 1.5]], [[1.5, 1.5], [1.78, 2.33]], [[1.78, 2.33], [2, 3]], [[2, -9], [5.35, -3.97]], [[5.35, -3.97], [5.67, -3.5]], [[5.67, -3.5], [6, -3]], [[2, -7], [1.2, -6.6]], [[1.2, -6.6], [-0.86, -5.57]], [[-0.86, -5.57], [-1.38, -5.31]], [[-1.38, -5.31], [-2, -5]], [[2, -7], [2, -6]], [[2, -6], [2, -3]], [[8, -7], [6, -3]], [[6, -3], [4.5, 0]], [[4.5, 0], [4.29, 0.43]], [[4.29, 0.43], [4, 1]], [[8, -7], [8, 3]], [[8, -7], [5.67, -3.5]], [[5.67, -3.5], [5.56, -3.33]], [[5.56, -3.33], [4, -1]], [[4, -1], [3.67, -0.5]], [[3.67, -0.5], [1.78, 2.33]], [[1.78, 2.33], [1.33, 3]], [[1.33, 3], [0.8, 3.8]], [[0.8, 3.8], [0, 5]], [[8, -7], [5.35, -3.97]], [[5.35, -3.97], [5.09, -3.68]], [[5.09, -3.68], [3.33, -1.67]], [[3.33, -1.67], [3.08, -1.38]], [[3.08, -1.38], [1.24, 0.72]], [[1.24, 0.72], [0.46, 1.62]], [[0.46, 1.62], [0.36, 1.73]], [[0.36, 1.73], [-0.12, 2.28]], [[-0.12, 2.28], [-0.37, 2.56]], [[-0.37, 2.56], [-6, 9]], [[-2, -5], [-1.27, -4.64]], [[-1.27, -4.64], [-0.4, -4.2]], [[-0.4, -4.2], [2, -3]], [[2, -3], [3.33, -1.67]], [[3.33, -1.67], [4, -1]], [[2, -3], [1, 0]], [[1, 0], [0.46, 1.62]], [[0.46, 1.62], [0.44, 1.67]], [[0.44, 1.67], [0, 3]], [[2, -3], [3.08, -1.38]], [[3.08, -1.38], [3.56, -0.67]], [[3.56, -0.67], [3.6, -0.6]], [[3.6, -0.6], [3.67, -0.5]], [[3.67, -0.5], [4.29, 0.43]], [[4.29, 0.43], [6, 3]], [[6, -3], [4, -1]], [[4, -1], [3.6, -0.6]], [[3.6, -0.6], [1.5, 1.5]], [[1.5, 1.5], [0, 3]], [[6, -3], [6, 3]], [[4, -1], [4.5, 0]], [[4.5, 0], [6, 3]], [[4, -1], [3.56, -0.67]], [[3.56, -0.67], [1.33, 1]], [[1.33, 1], [0.44, 1.67]], [[0.44, 1.67], [0.36, 1.73]], [[0.36, 1.73], [-0.15, 2.11]], [[-0.15, 2.11], [-0.51, 2.38]], [[-0.51, 2.38], [-4, 5]], [[4, -1], [3.67, -0.5]], [[3.67, -0.5], [1.78, 2.33]], [[1.78, 2.33], [1.33, 3]], [[1.33, 3], [0.8, 3.8]], [[0.8, 3.8], [0, 5]], [[0, 3], [1.33, 3]], [[1.33, 3], [2, 3]], [[2, 3], [6, 3]], [[0, 3], [0.8, 3.8]], [[0.8, 3.8], [2.4, 5.4]], [[2.4, 5.4], [6, 9]], [[2, 3], [3.33, 5]], [[3.33, 5], [6, 9]], [[6, 3], [6, 3.86]], [[6, 3.86], [6, 9]], [[8, 3], [6, 3.86]], [[6, 3.86], [3.33, 5]], [[3.33, 5], [2.4, 5.4]], [[2.4, 5.4], [-6, 9]], [[8, 3], [6, 9]]] >>> $vertex = [[[-10, -9], 0], [[-2, -9], 1], [[2, -9], 2], [[2, -7], 3], [[8, -7], 4], [[-2, -5], 5], [[2, -3], 6], [[6, -3], 7], [[4, -1], 8], [[4, 1], 9], [[0, 3], 10], [[2, 3], 11], [[6, 3], 12], [[8, 3], 13], [[-4, 5], 14], [[0, 5], 15], [[-6, 9], 16], [[6, 9], 17]]; $seg = [[10, 11, 2.0], [15, 16, 7.211], [2, 5, 5.657], [1, 13, 15.62], [4, 8, 7.211], [7, 15, 10.0], [0, 3, 12.166], [6, 11, 6.0], [9, 17, 8.246], [12, 14, 10.198]]; #根据线段的交点拆分线段 def test(): debug = 1; #线段 seg = [[[-10, -9], [0, 3]], [[-2, -9], [6, -3]], [[-2, -9], [0, 3]], [[-2, -9], [2, 3]], [[2, -9], [6, -3]], [[2, -7], [-2, -5]], [[2, -7], [2, -3]], [[8, -7], [4, 1]], [[8, -7], [8, 3]], [[8, -7], [0, 5]], [[8, -7], [-6, 9]], [[-2, -5], [2, -3]], [[2, -3], [4, -1]], [[2, -3], [0, 3]], [[2, -3], [6, 3]], [[6, -3], [0, 3]], [[6, -3], [6, 3]], [[4, -1], [6, 3]], [[4, -1], [-4, 5]], [[4, -1], [0, 5]], [[0, 3], [6, 3]], [[0, 3], [6, 9]], [[2, 3], [6, 9]], [[6, 3], [6, 9]], [[8, 3], [-6, 9]], [[8, 3], [6, 9]]] len_seg = len(seg); segSet = set(); for i in range(len(seg)): segSet.add(SegLine(seg[i][0], seg[i][1])); segArray = sorted(list(segSet)); #print(segArray); result = findInterPoint(segArray); divideSeg = []; #拆分线段 for i in range(len(result)): for j in range(len(result[i])-1): divideSeg.append([result[i][j].point, result[i][j+1].point]); print(len(divideSeg)); print(divideSeg); #</span>
求现在共有多少顶点
<span style="font-size:18px;"># >>> 102 [Point([-10, -9]), Point([-2, -9]), Point([2, -9]), Point([2, -7]), Point([8, -7]), Point([1.2, -6.6]), Point([2, -6]), Point([-0.86, -5.57]), Point([-1.38, -5.31]), Point([-2, -5]), Point([-1.27, -4.64]), Point([-0.4, -4.2]), Point([5.35, -3.97]), Point([5.09, -3.68]), Point([5.67, -3.5]), Point([5.56, -3.33]), Point([2, -3]), Point([6, -3]), Point([3.33, -1.67]), Point([3.08, -1.38]), Point([4, -1]), Point([3.56, -0.67]), Point([3.6, -0.6]), Point([3.67, -0.5]), Point([1, 0]), Point([4.5, 0]), Point([4.29, 0.43]), Point([1.24, 0.72]), Point([1.33, 1]), Point([4, 1]), Point([1.5, 1.5]), Point([0.46, 1.62]), Point([0.44, 1.67]), Point([0.36, 1.73]), Point([-0.15, 2.11]), Point([-0.12, 2.28]), Point([1.78, 2.33]), Point([-0.51, 2.38]), Point([-0.37, 2.56]), Point([0, 3]), Point([1.33, 3]), Point([2, 3]), Point([6, 3]), Point([8, 3]), Point([0.8, 3.8]), Point([6, 3.86]), Point([-4, 5]), Point([0, 5]), Point([3.33, 5]), Point([2.4, 5.4]), Point([-6, 9]), Point([6, 9])] 52 操作用时:4.428e-01 s >>> def test(): debug = 1; seg=[[[-10, -9], [-0.51, 2.38]], [[-0.51, 2.38], [-0.37, 2.56]], [[-0.37, 2.56], [0, 3]], [[-2, -9], [1.2, -6.6]], [[1.2, -6.6], [2, -6]], [[2, -6], [5.09, -3.68]], [[5.09, -3.68], [5.56, -3.33]], [[5.56, -3.33], [6, -3]], [[-2, -9], [-1.38, -5.31]], [[-1.38, -5.31], [-1.27, -4.64]], [[-1.27, -4.64], [-0.15, 2.11]], [[-0.15, 2.11], [-0.12, 2.28]], [[-0.12, 2.28], [0, 3]], [[-2, -9], [-0.86, -5.57]], [[-0.86, -5.57], [-0.4, -4.2]], [[-0.4, -4.2], [1, 0]], [[1, 0], [1.24, 0.72]], [[1.24, 0.72], [1.33, 1]], [[1.33, 1], [1.5, 1.5]], [[1.5, 1.5], [1.78, 2.33]], [[1.78, 2.33], [2, 3]], [[2, -9], [5.35, -3.97]], [[5.35, -3.97], [5.67, -3.5]], [[5.67, -3.5], [6, -3]], [[2, -7], [1.2, -6.6]], [[1.2, -6.6], [-0.86, -5.57]], [[-0.86, -5.57], [-1.38, -5.31]], [[-1.38, -5.31], [-2, -5]], [[2, -7], [2, -6]], [[2, -6], [2, -3]], [[8, -7], [6, -3]], [[6, -3], [4.5, 0]], [[4.5, 0], [4.29, 0.43]], [[4.29, 0.43], [4, 1]], [[8, -7], [8, 3]], [[8, -7], [5.67, -3.5]], [[5.67, -3.5], [5.56, -3.33]], [[5.56, -3.33], [4, -1]], [[4, -1], [3.67, -0.5]], [[3.67, -0.5], [1.78, 2.33]], [[1.78, 2.33], [1.33, 3]], [[1.33, 3], [0.8, 3.8]], [[0.8, 3.8], [0, 5]], [[8, -7], [5.35, -3.97]], [[5.35, -3.97], [5.09, -3.68]], [[5.09, -3.68], [3.33, -1.67]], [[3.33, -1.67], [3.08, -1.38]], [[3.08, -1.38], [1.24, 0.72]], [[1.24, 0.72], [0.46, 1.62]], [[0.46, 1.62], [0.36, 1.73]], [[0.36, 1.73], [-0.12, 2.28]], [[-0.12, 2.28], [-0.37, 2.56]], [[-0.37, 2.56], [-6, 9]], [[-2, -5], [-1.27, -4.64]], [[-1.27, -4.64], [-0.4, -4.2]], [[-0.4, -4.2], [2, -3]], [[2, -3], [3.33, -1.67]], [[3.33, -1.67], [4, -1]], [[2, -3], [1, 0]], [[1, 0], [0.46, 1.62]], [[0.46, 1.62], [0.44, 1.67]], [[0.44, 1.67], [0, 3]], [[2, -3], [3.08, -1.38]], [[3.08, -1.38], [3.56, -0.67]], [[3.56, -0.67], [3.6, -0.6]], [[3.6, -0.6], [3.67, -0.5]], [[3.67, -0.5], [4.29, 0.43]], [[4.29, 0.43], [6, 3]], [[6, -3], [4, -1]], [[4, -1], [3.6, -0.6]], [[3.6, -0.6], [1.5, 1.5]], [[1.5, 1.5], [0, 3]], [[6, -3], [6, 3]], [[4, -1], [4.5, 0]], [[4.5, 0], [6, 3]], [[4, -1], [3.56, -0.67]], [[3.56, -0.67], [1.33, 1]], [[1.33, 1], [0.44, 1.67]], [[0.44, 1.67], [0.36, 1.73]], [[0.36, 1.73], [-0.15, 2.11]], [[-0.15, 2.11], [-0.51, 2.38]], [[-0.51, 2.38], [-4, 5]], [[4, -1], [3.67, -0.5]], [[3.67, -0.5], [1.78, 2.33]], [[1.78, 2.33], [1.33, 3]], [[1.33, 3], [0.8, 3.8]], [[0.8, 3.8], [0, 5]], [[0, 3], [1.33, 3]], [[1.33, 3], [2, 3]], [[2, 3], [6, 3]], [[0, 3], [0.8, 3.8]], [[0.8, 3.8], [2.4, 5.4]], [[2.4, 5.4], [6, 9]], [[2, 3], [3.33, 5]], [[3.33, 5], [6, 9]], [[6, 3], [6, 3.86]], [[6, 3.86], [6, 9]], [[8, 3], [6, 3.86]], [[6, 3.86], [3.33, 5]], [[3.33, 5], [2.4, 5.4]], [[2.4, 5.4], [-6, 9]], [[8, 3], [6, 9]]] #计时开始 startTime = time.clock(); if (debug): print(len(seg)); a = AVL.AVLTree(); for i in range(len(seg)): a.insert(Point(seg[i][0])); a.insert(Point(seg[i][1])); #抽出线段集中所有的点 if (debug): a.info(); print(len(a)); #计时结束 endTime = time.clock(); #打印结果 print('操作用时:{0:.3e} s'.format(endTime-startTime)); #</span>
得到经过某顶点的闭合路径(部分)
<span style="font-size:18px;"># >>> 20 [[[-2, -9], [1.2, -6.6], [-0.86, -5.57], [-2, -9]], [[-2, -9], [-1.38, -5.31], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [-0.86, -5.57], [-1.38, -5.31], [-2, -9]], [[-2, -9], [-1.38, -5.31], [-1.27, -4.64], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-2, -9]], [[-2, -9], [-1.38, -5.31], [-2, -5], [-1.27, -4.64], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [1, 0], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -7], [2, -6], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [-1.27, -4.64], [-2, -5], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [5.09, -3.68], [3.33, -1.67], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-2, -5], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [1, 0], [-0.4, -4.2], [-0.86, -5.57], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [1, 0], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -7], [2, -6], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -7], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -7], [2, -6], [2, -3], [1, 0], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]]] >>> def test(): debug = 0; #主端点 mainVert = [[[-10, -9], 0], [[-2, -9], 1], [[2, -9], 2], [[2, -7], 3], [[8, -7], 4], [[-2, -5], 5], [[2, -3], 6], [[6, -3], 7], [[4, -1], 8], [[4, 1], 9], [[0, 3], 10], [[2, 3], 11], [[6, 3], 12], [[8, 3], 13], [[-4, 5], 14], [[0, 5], 15], [[-6, 9], 16], [[6, 9], 17]]; len_mainVert = len(mainVert); #顶点集 vert = [Point([-10, -9]), Point([-2, -9]), Point([2, -9]), Point([2, -7]), Point([8, -7]), Point([1.2, -6.6]), Point([2, -6]), Point([-0.86, -5.57]), Point([-1.38, -5.31]), Point([-2, -5]), Point([-1.27, -4.64]), Point([-0.4, -4.2]), Point([5.35, -3.97]), Point([5.09, -3.68]), Point([5.67, -3.5]), Point([5.56, -3.33]), Point([2, -3]), Point([6, -3]), Point([3.33, -1.67]), Point([3.08, -1.38]), Point([4, -1]), Point([3.56, -0.67]), Point([3.6, -0.6]), Point([3.67, -0.5]), Point([1, 0]), Point([4.5, 0]), Point([4.29, 0.43]), Point([1.24, 0.72]), Point([1.33, 1]), Point([4, 1]), Point([1.5, 1.5]), Point([0.46, 1.62]), Point([0.44, 1.67]), Point([0.36, 1.73]), Point([-0.15, 2.11]), Point([-0.12, 2.28]), Point([1.78, 2.33]), Point([-0.51, 2.38]), Point([-0.37, 2.56]), Point([0, 3]), Point([1.33, 3]), Point([2, 3]), Point([6, 3]), Point([8, 3]), Point([0.8, 3.8]), Point([6, 3.86]), Point([-4, 5]), Point([0, 5]), Point([3.33, 5]), Point([2.4, 5.4]), Point([-6, 9]), Point([6, 9])] len_vert = len(vert); #线段 seg = [[[-10, -9], [-0.51, 2.38]], [[-0.51, 2.38], [-0.37, 2.56]], [[-0.37, 2.56], [0, 3]], [[-2, -9], [1.2, -6.6]], [[1.2, -6.6], [2, -6]], [[2, -6], [5.09, -3.68]], [[5.09, -3.68], [5.56, -3.33]], [[5.56, -3.33], [6, -3]], [[-2, -9], [-1.38, -5.31]], [[-1.38, -5.31], [-1.27, -4.64]], [[-1.27, -4.64], [-0.15, 2.11]], [[-0.15, 2.11], [-0.12, 2.28]], [[-0.12, 2.28], [0, 3]], [[-2, -9], [-0.86, -5.57]], [[-0.86, -5.57], [-0.4, -4.2]], [[-0.4, -4.2], [1, 0]], [[1, 0], [1.24, 0.72]], [[1.24, 0.72], [1.33, 1]], [[1.33, 1], [1.5, 1.5]], [[1.5, 1.5], [1.78, 2.33]], [[1.78, 2.33], [2, 3]], [[2, -9], [5.35, -3.97]], [[5.35, -3.97], [5.67, -3.5]], [[5.67, -3.5], [6, -3]], [[2, -7], [1.2, -6.6]], [[1.2, -6.6], [-0.86, -5.57]], [[-0.86, -5.57], [-1.38, -5.31]], [[-1.38, -5.31], [-2, -5]], [[2, -7], [2, -6]], [[2, -6], [2, -3]], [[8, -7], [6, -3]], [[6, -3], [4.5, 0]], [[4.5, 0], [4.29, 0.43]], [[4.29, 0.43], [4, 1]], [[8, -7], [8, 3]], [[8, -7], [5.67, -3.5]], [[5.67, -3.5], [5.56, -3.33]], [[5.56, -3.33], [4, -1]], [[4, -1], [3.67, -0.5]], [[3.67, -0.5], [1.78, 2.33]], [[1.78, 2.33], [1.33, 3]], [[1.33, 3], [0.8, 3.8]], [[0.8, 3.8], [0, 5]], [[8, -7], [5.35, -3.97]], [[5.35, -3.97], [5.09, -3.68]], [[5.09, -3.68], [3.33, -1.67]], [[3.33, -1.67], [3.08, -1.38]], [[3.08, -1.38], [1.24, 0.72]], [[1.24, 0.72], [0.46, 1.62]], [[0.46, 1.62], [0.36, 1.73]], [[0.36, 1.73], [-0.12, 2.28]], [[-0.12, 2.28], [-0.37, 2.56]], [[-0.37, 2.56], [-6, 9]], [[-2, -5], [-1.27, -4.64]], [[-1.27, -4.64], [-0.4, -4.2]], [[-0.4, -4.2], [2, -3]], [[2, -3], [3.33, -1.67]], [[3.33, -1.67], [4, -1]], [[2, -3], [1, 0]], [[1, 0], [0.46, 1.62]], [[0.46, 1.62], [0.44, 1.67]], [[0.44, 1.67], [0, 3]], [[2, -3], [3.08, -1.38]], [[3.08, -1.38], [3.56, -0.67]], [[3.56, -0.67], [3.6, -0.6]], [[3.6, -0.6], [3.67, -0.5]], [[3.67, -0.5], [4.29, 0.43]], [[4.29, 0.43], [6, 3]], [[6, -3], [4, -1]], [[4, -1], [3.6, -0.6]], [[3.6, -0.6], [1.5, 1.5]], [[1.5, 1.5], [0, 3]], [[6, -3], [6, 3]], [[4, -1], [4.5, 0]], [[4.5, 0], [6, 3]], [[4, -1], [3.56, -0.67]], [[3.56, -0.67], [1.33, 1]], [[1.33, 1], [0.44, 1.67]], [[0.44, 1.67], [0.36, 1.73]], [[0.36, 1.73], [-0.15, 2.11]], [[-0.15, 2.11], [-0.51, 2.38]], [[-0.51, 2.38], [-4, 5]], [[4, -1], [3.67, -0.5]], [[3.67, -0.5], [1.78, 2.33]], [[1.78, 2.33], [1.33, 3]], [[1.33, 3], [0.8, 3.8]], [[0.8, 3.8], [0, 5]], [[0, 3], [1.33, 3]], [[1.33, 3], [2, 3]], [[2, 3], [6, 3]], [[0, 3], [0.8, 3.8]], [[0.8, 3.8], [2.4, 5.4]], [[2.4, 5.4], [6, 9]], [[2, 3], [3.33, 5]], [[3.33, 5], [6, 9]], [[6, 3], [6, 3.86]], [[6, 3.86], [6, 9]], [[8, 3], [6, 3.86]], [[6, 3.86], [3.33, 5]], [[3.33, 5], [2.4, 5.4]], [[2.4, 5.4], [-6, 9]], [[8, 3], [6, 9]]] len_seg = len(seg); #记录每一个顶点会和哪些其它顶点构成边 segMap = dict(); for i in range(len_vert): segMap[vert[i]] = []; for i in range(len_seg): p1 = Point(seg[i][0]); p2 = Point(seg[i][1]) segMap[p1].append(p2); segMap[p2].append(p1); #print(segMap); #每个顶点最多访问一次 findedPath = []; #目标 index = 1; taskVertex = Point(mainVert[index][0]); path = [[taskVertex]]; result = []; while (path != []): a = path[0]; path = path[1:]; if (len(a) > 8): continue; p = segMap[a[-1]]; for item in p: if item == taskVertex: if (len(a) > 2): #此句是为了防止路径不断进行相同顶点之间的排列组合 b = sorted(a + [item]); if not b in findedPath: result.append(a+[item]); findedPath.append(b); elif not item in a: path.append(a+[item]); if (debug): print(len(result)); print(result); for i in range(len(result)): for j in range(len(result[i])): result[i][j] = result[i][j].value(); print(len(result)); print(result); #</span>
比如这是经过顶点<1>的路径。
<span style="font-size:18px;">// $path = [[[2, 3], [1.33, 3], [1.78, 2.33], [3.67, -0.5], [4.29, 0.43], [6, 3], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0.8, 3.8], [0, 3], [-0.37, 2.56], [-6, 9], [2.4, 5.4], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [3.33, 5], [6, 3.86], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [8, 3], [6, 3.86], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [8, 3], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [-0.37, 2.56], [-6, 9], [2.4, 5.4], [6, 9], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [-0.12, 2.28], [-0.37, 2.56], [-6, 9], [2.4, 5.4], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [1.78, 2.33], [3.67, -0.5], [4.29, 0.43], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [3.6, -0.6], [3.67, -0.5], [4.29, 0.43], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1], [6, -3], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1], [4.5, 0], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [6, 3.86], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [0.8, 3.8], [2.4, 5.4], [3.33, 5], [6, 3.86], [6, 3], [2, 3]], [[2, 3], [6, 3], [6, -3], [5.67, -3.5], [8, -7], [8, 3], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [6, -3], [5.67, -3.5], [8, -7], [8, 3], [6, 9], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [6, -3], [8, -7], [8, 3], [6, 3.86], [6, 9], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [6, -3], [8, -7], [8, 3], [6, 9], [2.4, 5.4], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [4.5, 0], [6, -3], [8, -7], [8, 3], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [4.5, 0], [6, -3], [8, -7], [8, 3], [6, 9], [3.33, 5], [2, 3]]] if (1) { var r = 20; config.setSector(1,1,1,1); config.graphPaper2D(0, 0, r); config.axis2D(0, 0, 250, 1.2); //坐标轴设定 var scaleX = 2*r, scaleY = 2*r; var spaceX = 2, spaceY = 2; var xS = -10, xE = 10; var yS = -10, yE = 10; config.axisSpacing(xS, xE, spaceX, scaleX, 'X'); config.axisSpacing(yS, yE, spaceY, scaleY, 'Y'); var transform = new Transform(); //顶点 var a = []; for (var i = 0; i < $vertex.length; i++) { a.push($vertex[i][0]); } //显示变换 if (a.length > 0) { a = transform.scale(transform.translate(a, 0, 0), scaleX/spaceX, scaleY/spaceY); } var lable = []; for (var i = 0; i < 100; i++) { lable.push(i.toFixed(0)); } /* //边集 var b = []; for (var i = 0; i < $seg.length; i++) { b.push([a[$seg[i][0]], a[$seg[i][1]]]); } var edges = b.length; for (var i = 0; i < edges; i++) { shape.multiLineDraw([].concat(b[i]), 'red'); }*/ var colorArray = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', ]; var seg = []; var nSeg = $divideSeg.length; for (var i = 0; i < nSeg; i++) { seg = transform.scale(transform.translate($divideSeg[i], 0, 0), scaleX/spaceX, scaleY/spaceY); shape.multiLineDraw([].concat(seg), 'pink'); } nSeg = $path.length; i = xGlobal; seg = transform.scale(transform.translate($path[i%nSeg], 0, 0), scaleX/spaceX, scaleY/spaceY); plot.setLineWidth(i%10+2); shape.multiLineDraw([].concat(seg), colorArray[i%7]); shape.pointDraw([].concat(a), 'blue', 1, 1, lable); } //</span>
判断点是否在多边形内部
<span style="font-size:18px;"># #判断点是否在多边形内部 def tmp13(): #主端点 mainVert = [[[-10, -9], 0], [[-2, -9], 1], [[2, -9], 2], [[2, -7], 3], [[8, -7], 4], [[-2, -5], 5], [[2, -3], 6], [[6, -3], 7], [[4, -1], 8], [[4, 1], 9], [[0, 3], 10], [[2, 3], 11], [[6, 3], 12], [[8, 3], 13], [[-4, 5], 14], [[0, 5], 15], [[-6, 9], 16], [[6, 9], 17]]; len_vert = len(mainVert); path = [[2, 3], [1.33, 3], [0.8, 3.8], [0, 3], [-0.37, 2.56], [-6, 9], [2.4, 5.4], [3.33, 5], [2, 3]] poly = Polygon(path); answer = -2; for i in range(len_vert): answer = poly.pointInPolygon(mainVert[i][0]); if answer == -1: s = '不在多边形内部'; elif answer == 1: s = '在多边形内部'; else: s = '在边上'; print('点{0} {1}'.format(i, s)); #</span>
<span style="font-size:18px;"># class Polygon(): #格式:path = [[-6, 9], [8, -7], [8, 3], [-6, 9]] def __init__(self, path): if (path[-1] != path[0]): path.append(path[0]); self.path = path; #顶点数量 self.vertNum = len(self.path)-1; self.vertex = []; self.edge = []; self.vertexCalc(); self.edgeCalc(); def vertexCalc(self): for i in range(self.vertNum): self.vertex.append(Point(self.path[i])); def getVertex(self): return self.vertex; def edgeCalc(self): for i in range(self.vertNum): self.edge.append(SegLine(self.path[i], self.path[i+1])); def getEdge(self): return self.edge; def pointInPolygon(self, point): #测试点左右两边截多边形的各边,得到的交点数都为奇数,说明测试点在多边形内 #反之在外面 oddNodes = False; #点在多边形的边上 if (Point(point) in self.vertex): return 0; x, y = point[0], point[1]; j = self.vertNum - 1; for i in range(self.vertNum): p1 = self.vertex[i].value(); p2 = self.vertex[j].value(); px1, py1 = p1[0], p1[1]; px2, py2 = p2[0], p2[1]; if (((py1 < y and py2 >= y) or (py2 < y and py1 >= y)) and \ (px1 <= x or px2 <= x)): if ((px1+(y-py1)/(py2-py1)*(px2-px1)) < x): oddNodes = not oddNodes; j = i; if (oddNodes == False): #点不在多边形内 return -1; else: #点在多边形内 return 1; #</span>
<span style="font-size:18px;"># class Point(): def __init__(self, point): point = [round(point[0], 2), round(point[1], 2)]; if abs(int(point[0])-point[0]) < 1e-6: point[0] = int(point[0]); if abs(int(point[1])-point[1]) < 1e-6: point[1] = int(point[1]); self.point = point; def __lt__(self, other): if (type(other.point) != type([0, 0])): return self.point < other.point; else: p1 = self.point; p2 = other.point; if p1[1] < p2[1]: return True; elif p1[1] > p2[1]: return False; else: return p1[0] < p2[0]; def __gt__(self, other): return not (self == other or self < other); def __eq__(self, other): if other == None: return False; else: p1, p2 = self.point, other.point; x1, y1, x2, y2 = p1[0], p1[1], p2[0], p2[1]; return abs(p1[0]-p2[0])<1e-6 and abs(p1[1]-p2[1])<1e-6; def __str__(self): return str(self.point); def __repr__(self): return 'Point('+str(self)+')'; def __hash__(self): return hash(str(self)); def value(self): return self.point; #</span>
<span style="font-size:18px;"># #线段类 class SegLine(): def __init__(self, pStart=[1e6,1e6], pEnd=[1e6, 1e6]): #按照y值由小到大,x值由小到大的顺序排列 if pStart[1] > pEnd[1]: pStart, pEnd = pEnd, pStart; elif pStart[1] == pEnd[1]: if pStart[0] > pEnd[0]: pStart, pEnd = pEnd, pStart; self.pStart = [round(pStart[0], 2), round(pStart[1], 2)]; self.pEnd = [round(pEnd[0], 2), round(pEnd[1], 2)]; #<号的判定是根据起点和终点的位置 #y值权重优先 def __lt__(self, other): if type(self) == type(None) or type(other) == type(None): return False; if self.pStart == other.pStart: if self.pEnd[1] < other.pEnd[1]: return True; elif self.pEnd[1] == other.pEnd[1]: if self.pEnd[0] < other.pEnd[0]: return True; else: return False; else: if self.pStart[1] < other.pStart[1]: return True; elif self.pStart[1] == other.pStart[1]: if self.pStart[0] < other.pStart[0]: return True; else: return False; def __eq__(self, other): if type(self) == type(None) or type(other) == type(None): return False; if self.pStart == other.pStart and self.pEnd == other.pEnd: return True; return False; def __gt__(self, other): if self == other or self < other: return False; return True; def __ge__(self, other): return (not self < other) or (self == other); def __str__(self): x1, y1 = self.pStart[0], self.pStart[1]; x2, y2 = self.pEnd[0], self.pEnd[1]; return '[['+str(x1)+', '+str(y1)+'], ['+str(x2)+', '+str(y2)+']]'; def __hash__(self): x1, y1 = self.pStart[0], self.pStart[1]; x2, y2 = self.pEnd[0], self.pEnd[1]; s = '[['+str(x1)+', '+str(y1)+'], ['+str(x2)+', '+str(y2)+']]'; return hash(s); def __repr__(self): return 'SegLine('+str(self)[1:-1]+')'; def value(self): return [self.pStart, self.pEnd]; #</span>
从顶点序号<0>开始,到序号<17>结束,列出经过该点的部分闭合路径。
a0 = []
a1 = [[[-2, -9], [1.2, -6.6], [-0.86, -5.57], [-2, -9]], [[-2, -9], [-1.38, -5.31], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [-0.86, -5.57], [-1.38, -5.31], [-2, -9]], [[-2, -9], [-1.38, -5.31], [-1.27, -4.64], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-2, -9]], [[-2, -9], [-1.38, -5.31], [-2, -5], [-1.27, -4.64], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [1, 0], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -7], [2, -6], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [-1.27, -4.64], [-2, -5], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [5.09, -3.68], [3.33, -1.67], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-0.86, -5.57], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-2, -5], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [1, 0], [-0.4, -4.2], [-0.86, -5.57], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -6], [2, -3], [1, 0], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -7], [2, -6], [2, -3], [-0.4, -4.2], [-0.86, -5.57], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -7], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-1.38, -5.31], [-2, -9]], [[-2, -9], [1.2, -6.6], [2, -7], [2, -6], [2, -3], [1, 0], [-0.4, -4.2], [-0.86, -5.57], [-2, -9]]]
a2=[];
a3= [[[2, -7], [1.2, -6.6], [2, -6], [2, -7]], [[2, -7], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [2, -3], [2, -6], [2, -7]], [[2, -7], [1.2, -6.6], [-2, -9], [-0.86, -5.57], [-0.4, -4.2], [2, -3], [2, -6], [2, -7]], [[2, -7], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [1, 0], [2, -3], [2, -6], [2, -7]], [[2, -7], [1.2, -6.6], [-2, -9], [-1.38, -5.31], [-1.27, -4.64], [-0.4, -4.2], [2, -3], [2, -6], [2, -7]], [[2, -7], [1.2, -6.6], [-2, -9], [-1.38, -5.31], [-0.86, -5.57], [-0.4, -4.2], [2, -3], [2, -6], [2, -7]], [[2, -7], [1.2, -6.6], [-2, -9], [-0.86, -5.57], [-0.4, -4.2], [1, 0], [2, -3], [2, -6], [2, -7]], [[2, -7], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [2, -3], [3.33, -1.67], [5.09, -3.68], [2, -6], [2, -7]], [[2, -7], [1.2, -6.6], [-0.86, -5.57], [-1.38, -5.31], [-1.27, -4.64], [-0.4, -4.2], [2, -3], [2, -6], [2, -7]]]
a4=[[[8, -7], [6, -3], [6, 3], [4.5, 0], [4, -1], [5.56, -3.33], [5.09, -3.68], [5.35, -3.97], [8, -7]], [[8, -7], [6, -3], [6, 3], [4.5, 0], [4, -1], [5.56, -3.33], [5.67, -3.5], [5.35, -3.97], [8, -7]], [[8, -7], [6, -3], [6, 3], [4.5, 0], [4, -1], [3.33, -1.67], [5.09, -3.68], [5.35, -3.97], [8, -7]], [[8, -7], [6, -3], [6, 3], [2, 3], [3.33, 5], [6, 9], [6, 3.86], [8, 3], [8, -7]], [[8, -7], [6, -3], [6, 3], [2, 3], [3.33, 5], [2.4, 5.4], [6, 9], [8, 3], [8, -7]], [[8, -7], [6, -3], [6, 3], [6, 3.86], [3.33, 5], [2.4, 5.4], [6, 9], [8, 3], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [6, 3], [4.29, 0.43], [4.5, 0], [6, -3], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [6, 3], [6, -3], [5.56, -3.33], [5.09, -3.68], [5.35, -3.97], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [6, 3], [6, -3], [5.56, -3.33], [5.67, -3.5], [5.35, -3.97], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [6, 3], [6, -3], [4, -1], [5.56, -3.33], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [6, 3], [4.5, 0], [6, -3], [5.56, -3.33], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [6, 3], [4.5, 0], [6, -3], [5.67, -3.5], [5.35, -3.97], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [6, 3], [4.5, 0], [4, -1], [5.56, -3.33], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [6, 3], [4.5, 0], [4, -1], [6, -3], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 3.86], [3.33, 5], [2, 3], [6, 3], [6, -3], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 9], [3.33, 5], [2, 3], [6, 3], [6, -3], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 9], [3.33, 5], [6, 3.86], [6, 3], [6, -3], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 9], [6, 3.86], [6, 3], [6, -3], [5.56, -3.33], [5.67, -3.5], [8, -7]], [[8, -7], [8, 3], [6, 9], [6, 3.86], [6, 3], [6, -3], [5.67, -3.5], [5.35, -3.97], [8, -7]], [[8, -7], [8, 3], [6, 9], [6, 3.86], [6, 3], [4.5, 0], [6, -3], [5.67, -3.5], [8, -7]]]
a5=[[[-2, -5], [-1.38, -5.31], [-1.27, -4.64], [-2, -5]], [[-2, -5], [-1.38, -5.31], [-0.86, -5.57], [-0.4, -4.2], [-1.27, -4.64], [-2, -5]], [[-2, -5], [-1.38, -5.31], [-2, -9], [-0.86, -5.57], [-0.4, -4.2], [-1.27, -4.64], [-2, -5]], [[-2, -5], [-1.38, -5.31], [-2, -9], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [-1.27, -4.64], [-2, -5]], [[-2, -5], [-1.38, -5.31], [-2, -9], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-2, -5]], [[-2, -5], [-1.38, -5.31], [-0.86, -5.57], [1.2, -6.6], [2, -6], [2, -3], [-0.4, -4.2], [-1.27, -4.64], [-2, -5]]]
a6=[[[2, -3], [3.33, -1.67], [5.09, -3.68], [2, -6], [1.2, -6.6], [-0.86, -5.57], [-0.4, -4.2], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [5.09, -3.68], [5.56, -3.33], [6, -3], [4, -1], [3.56, -0.67], [3.08, -1.38], [2, -3]], [[2, -3], [3.33, -1.67], [5.09, -3.68], [5.56, -3.33], [4, -1], [3.6, -0.6], [3.56, -0.67], [3.08, -1.38], [2, -3]], [[2, -3], [3.33, -1.67], [3.08, -1.38], [1.24, 0.72], [1.33, 1], [0.44, 1.67], [0.46, 1.62], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [3.08, -1.38], [3.56, -0.67], [1.33, 1], [1.24, 0.72], [0.46, 1.62], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [3.08, -1.38], [3.56, -0.67], [1.33, 1], [0.44, 1.67], [0.46, 1.62], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.6, -0.6], [3.56, -0.67], [3.08, -1.38], [1.24, 0.72], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.6, -0.6], [3.56, -0.67], [1.33, 1], [1.24, 0.72], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.6, -0.6], [3.56, -0.67], [1.33, 1], [1.24, 0.72], [3.08, -1.38], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.6, -0.6], [1.5, 1.5], [1.33, 1], [1.24, 0.72], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.6, -0.6], [1.5, 1.5], [1.33, 1], [1.24, 0.72], [3.08, -1.38], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.6, -0.6], [1.5, 1.5], [1.33, 1], [3.56, -0.67], [3.08, -1.38], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.56, -0.67], [3.08, -1.38], [1.24, 0.72], [0.46, 1.62], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.56, -0.67], [1.33, 1], [1.24, 0.72], [0.46, 1.62], [1, 0], [2, -3]], [[2, -3], [3.33, -1.67], [4, -1], [3.56, -0.67], [1.33, 1], [0.44, 1.67], [0.46, 1.62], [1, 0], [2, -3]], [[2, -3], [1, 0], [1.24, 0.72], [1.33, 1], [1.5, 1.5], [3.6, -0.6], [3.56, -0.67], [3.08, -1.38], [2, -3]], [[2, -3], [1, 0], [1.24, 0.72], [1.33, 1], [3.56, -0.67], [4, -1], [3.33, -1.67], [3.08, -1.38], [2, -3]], [[2, -3], [1, 0], [1.24, 0.72], [0.46, 1.62], [0.44, 1.67], [1.33, 1], [3.56, -0.67], [3.08, -1.38], [2, -3]], [[2, -3], [1, 0], [0.46, 1.62], [0.36, 1.73], [0.44, 1.67], [1.33, 1], [1.24, 0.72], [3.08, -1.38], [2, -3]], [[2, -3], [1, 0], [0.46, 1.62], [0.36, 1.73], [0.44, 1.67], [1.33, 1], [3.56, -0.67], [3.08, -1.38], [2, -3]]]
a7=[[[6, -3], [8, -7], [5.35, -3.97], [5.09, -3.68], [5.56, -3.33], [4, -1], [4.5, 0], [6, 3], [6, -3]], [[6, -3], [8, -7], [5.35, -3.97], [5.09, -3.68], [3.33, -1.67], [3.08, -1.38], [3.56, -0.67], [4, -1], [6, -3]], [[6, -3], [8, -7], [5.35, -3.97], [5.09, -3.68], [3.33, -1.67], [4, -1], [4.5, 0], [6, 3], [6, -3]], [[6, -3], [4.5, 0], [4.29, 0.43], [3.67, -0.5], [1.78, 2.33], [1.5, 1.5], [3.6, -0.6], [4, -1], [6, -3]], [[6, -3], [4.5, 0], [4.29, 0.43], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [2, 3], [6, 3], [6, -3]], [[6, -3], [4.5, 0], [4.29, 0.43], [6, 3], [2, 3], [1.78, 2.33], [3.67, -0.5], [4, -1], [6, -3]], [[6, -3], [4.5, 0], [4, -1], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [2, 3], [6, 3], [6, -3]], [[6, -3], [4.5, 0], [4, -1], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [2, 3], [6, 3], [6, -3]], [[6, -3], [4.5, 0], [4, -1], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3], [6, -3]], [[6, -3], [4.5, 0], [4, -1], [3.56, -0.67], [3.6, -0.6], [3.67, -0.5], [4.29, 0.43], [6, 3], [6, -3]], [[6, -3], [4, -1], [5.56, -3.33], [5.67, -3.5], [8, -7], [8, 3], [6, 3.86], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.67, -0.5], [1.78, 2.33], [2, 3], [3.33, 5], [6, 3.86], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.67, -0.5], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [2, 3], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [3.67, -0.5], [4.29, 0.43], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [1.33, 3], [2, 3], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.6, -0.6], [1.5, 1.5], [0, 3], [1.33, 3], [2, 3], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.56, -0.67], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [2, 3], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.56, -0.67], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3], [6, -3]], [[6, -3], [4, -1], [3.56, -0.67], [1.33, 1], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3], [6, -3]]]
a8=[[[4, -1], [6, -3], [6, 3], [4.29, 0.43], [3.67, -0.5], [1.78, 2.33], [1.5, 1.5], [3.6, -0.6], [4, -1]], [[4, -1], [6, -3], [6, 3], [2, 3], [1.78, 2.33], [1.5, 1.5], [1.33, 1], [3.56, -0.67], [4, -1]], [[4, -1], [6, -3], [6, 3], [2, 3], [1.78, 2.33], [1.5, 1.5], [3.6, -0.6], [3.56, -0.67], [4, -1]], [[4, -1], [6, -3], [6, 3], [2, 3], [1.78, 2.33], [3.67, -0.5], [3.6, -0.6], [3.56, -0.67], [4, -1]], [[4, -1], [6, -3], [6, 3], [2, 3], [1.33, 3], [1.78, 2.33], [1.5, 1.5], [3.6, -0.6], [4, -1]], [[4, -1], [6, -3], [6, 3], [2, 3], [1.33, 3], [1.78, 2.33], [3.67, -0.5], [3.6, -0.6], [4, -1]], [[4, -1], [6, -3], [6, 3], [2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1]], [[4, -1], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [2, 3], [6, 3], [4.29, 0.43], [4.5, 0], [4, -1]], [[4, -1], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [2, 3], [6, 3], [4.5, 0], [4, -1]], [[4, -1], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3], [4.29, 0.43], [4.5, 0], [4, -1]], [[4, -1], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [3.67, -0.5], [4.29, 0.43], [6, 3], [4.5, 0], [4, -1]], [[4, -1], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [1.33, 3], [2, 3], [6, 3], [4.5, 0], [4, -1]], [[4, -1], [3.6, -0.6], [1.5, 1.5], [0, 3], [1.33, 3], [2, 3], [6, 3], [4.5, 0], [4, -1]], [[4, -1], [4.5, 0], [6, -3], [5.56, -3.33], [5.09, -3.68], [3.33, -1.67], [3.08, -1.38], [3.56, -0.67], [4, -1]], [[4, -1], [4.5, 0], [4.29, 0.43], [3.67, -0.5], [1.78, 2.33], [1.5, 1.5], [1.33, 1], [3.56, -0.67], [4, -1]], [[4, -1], [4.5, 0], [4.29, 0.43], [3.67, -0.5], [1.78, 2.33], [1.5, 1.5], [3.6, -0.6], [3.56, -0.67], [4, -1]], [[4, -1], [4.5, 0], [4.29, 0.43], [3.67, -0.5], [3.6, -0.6], [1.5, 1.5], [1.33, 1], [3.56, -0.67], [4, -1]], [[4, -1], [4.5, 0], [6, 3], [2, 3], [1.78, 2.33], [1.5, 1.5], [1.33, 1], [3.56, -0.67], [4, -1]], [[4, -1], [4.5, 0], [6, 3], [2, 3], [1.78, 2.33], [1.5, 1.5], [3.6, -0.6], [3.56, -0.67], [4, -1]], [[4, -1], [4.5, 0], [6, 3], [2, 3], [1.78, 2.33], [3.67, -0.5], [3.6, -0.6], [3.56, -0.67], [4, -1]]]
a9=[];
a10=[[[0, 3], [0.44, 1.67], [1.33, 1], [3.56, -0.67], [4, -1], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [0, 3]], [[0, 3], [0.44, 1.67], [1.33, 1], [3.56, -0.67], [4, -1], [3.67, -0.5], [3.6, -0.6], [1.5, 1.5], [0, 3]], [[0, 3], [0.44, 1.67], [0.36, 1.73], [0.46, 1.62], [1, 0], [1.24, 0.72], [1.33, 1], [1.5, 1.5], [0, 3]], [[0, 3], [0.44, 1.67], [0.36, 1.73], [-0.12, 2.28], [-0.37, 2.56], [-6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3]], [[0, 3], [1.5, 1.5], [1.33, 1], [3.56, -0.67], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [0, 3]], [[0, 3], [1.5, 1.5], [1.33, 1], [3.56, -0.67], [4, -1], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [0, 3]], [[0, 3], [1.5, 1.5], [1.78, 2.33], [2, 3], [3.33, 5], [6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3]], [[0, 3], [1.5, 1.5], [1.78, 2.33], [2, 3], [3.33, 5], [2.4, 5.4], [0.8, 3.8], [1.33, 3], [0, 3]], [[0, 3], [1.5, 1.5], [1.78, 2.33], [3.67, -0.5], [4.29, 0.43], [6, 3], [2, 3], [1.33, 3], [0, 3]], [[0, 3], [1.5, 1.5], [3.6, -0.6], [3.56, -0.67], [4, -1], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [0, 3]], [[0, 3], [1.5, 1.5], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [2, 3], [1.33, 3], [0.8, 3.8], [0, 3]], [[0, 3], [1.5, 1.5], [3.6, -0.6], [3.67, -0.5], [4.29, 0.43], [6, 3], [2, 3], [1.33, 3], [0, 3]], [[0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1], [3.67, -0.5], [1.78, 2.33], [2, 3], [1.33, 3], [0, 3]], [[0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [0.8, 3.8], [0, 3]], [[0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1], [6, -3], [6, 3], [2, 3], [1.33, 3], [0, 3]], [[0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1], [4.5, 0], [6, 3], [2, 3], [1.33, 3], [0, 3]], [[0, 3], [1.33, 3], [1.78, 2.33], [2, 3], [3.33, 5], [6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3]], [[0, 3], [1.33, 3], [2, 3], [6, 3], [6, 3.86], [6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3]], [[0, 3], [1.33, 3], [2, 3], [6, 3], [6, 3.86], [3.33, 5], [2.4, 5.4], [0.8, 3.8], [0, 3]], [[0, 3], [1.33, 3], [2, 3], [3.33, 5], [6, 3.86], [6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3]]]
a11=[[[2, 3], [1.33, 3], [1.78, 2.33], [3.67, -0.5], [4.29, 0.43], [6, 3], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0.8, 3.8], [0, 3], [-0.37, 2.56], [-6, 9], [2.4, 5.4], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [3.33, 5], [6, 3.86], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [8, 3], [6, 3.86], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [8, 3], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [-0.37, 2.56], [-6, 9], [2.4, 5.4], [6, 9], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [-0.12, 2.28], [-0.37, 2.56], [-6, 9], [2.4, 5.4], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [1.78, 2.33], [3.67, -0.5], [4.29, 0.43], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [3.6, -0.6], [3.67, -0.5], [4.29, 0.43], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1], [6, -3], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [1.5, 1.5], [3.6, -0.6], [4, -1], [4.5, 0], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [6, 3.86], [6, 3], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [1.33, 3], [0, 3], [0.8, 3.8], [2.4, 5.4], [3.33, 5], [6, 3.86], [6, 3], [2, 3]], [[2, 3], [6, 3], [6, -3], [5.67, -3.5], [8, -7], [8, 3], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [6, -3], [5.67, -3.5], [8, -7], [8, 3], [6, 9], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [6, -3], [8, -7], [8, 3], [6, 3.86], [6, 9], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [6, -3], [8, -7], [8, 3], [6, 9], [2.4, 5.4], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [4.5, 0], [6, -3], [8, -7], [8, 3], [6, 3.86], [3.33, 5], [2, 3]], [[2, 3], [6, 3], [4.5, 0], [6, -3], [8, -7], [8, 3], [6, 9], [3.33, 5], [2, 3]]]
a12=[[[6, 3], [4.5, 0], [4.29, 0.43], [3.67, -0.5], [1.78, 2.33], [2, 3], [3.33, 5], [6, 3.86], [6, 3]], [[6, 3], [4.5, 0], [4.29, 0.43], [3.67, -0.5], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [5.56, -3.33], [6, -3], [8, -7], [8, 3], [6, 3.86], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [5.56, -3.33], [5.67, -3.5], [8, -7], [8, 3], [6, 3.86], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [3.67, -0.5], [1.78, 2.33], [2, 3], [3.33, 5], [6, 3.86], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [3.67, -0.5], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [6, -3], [5.67, -3.5], [8, -7], [8, 3], [6, 3.86], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [6, -3], [8, -7], [8, 3], [6, 9], [6, 3.86], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [1.33, 3], [2, 3], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [1.33, 3], [2, 3], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [3.6, -0.6], [1.5, 1.5], [0, 3], [1.33, 3], [2, 3], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [3.56, -0.67], [3.6, -0.6], [3.67, -0.5], [1.78, 2.33], [2, 3], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [3.56, -0.67], [3.6, -0.6], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3]], [[6, 3], [4.5, 0], [4, -1], [3.56, -0.67], [1.33, 1], [1.5, 1.5], [1.78, 2.33], [2, 3], [6, 3]], [[6, 3], [2, 3], [1.78, 2.33], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [6, 3.86], [6, 3]], [[6, 3], [2, 3], [1.78, 2.33], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [3.33, 5], [6, 3.86], [6, 3]], [[6, 3], [2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [3.33, 5], [6, 3.86], [6, 3]], [[6, 3], [2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [8, 3], [6, 3.86], [6, 3]], [[6, 3], [2, 3], [1.33, 3], [0, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [6, 3.86], [6, 3]], [[6, 3], [2, 3], [1.33, 3], [0, 3], [0.8, 3.8], [2.4, 5.4], [3.33, 5], [6, 3.86], [6, 3]]]
a13=[[[8, 3], [8, -7], [6, -3], [4, -1], [4.5, 0], [6, 3], [6, 3.86], [6, 9], [8, 3]], [[8, 3], [8, -7], [6, -3], [6, 3], [2, 3], [3.33, 5], [6, 9], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [6, -3], [6, 3], [2, 3], [3.33, 5], [2.4, 5.4], [6, 9], [8, 3]], [[8, 3], [8, -7], [6, -3], [6, 3], [6, 3.86], [3.33, 5], [2.4, 5.4], [6, 9], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [6, -3], [4.5, 0], [4.29, 0.43], [6, 3], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [6, -3], [4.5, 0], [6, 3], [6, 3.86], [6, 9], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [6, -3], [4, -1], [4.5, 0], [6, 3], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [6, -3], [6, 3], [2, 3], [3.33, 5], [6, 9], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [6, -3], [6, 3], [2, 3], [3.33, 5], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [6, -3], [6, 3], [6, 3.86], [3.33, 5], [6, 9], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [5.56, -3.33], [6, -3], [4.5, 0], [6, 3], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [5.56, -3.33], [6, -3], [6, 3], [6, 3.86], [6, 9], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [5.56, -3.33], [4, -1], [6, -3], [6, 3], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [5.67, -3.5], [5.56, -3.33], [4, -1], [4.5, 0], [6, 3], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [5.35, -3.97], [5.67, -3.5], [6, -3], [4.5, 0], [6, 3], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [5.35, -3.97], [5.67, -3.5], [6, -3], [6, 3], [6, 3.86], [6, 9], [8, 3]], [[8, 3], [8, -7], [5.35, -3.97], [5.67, -3.5], [5.56, -3.33], [6, -3], [6, 3], [6, 3.86], [8, 3]], [[8, 3], [8, -7], [5.35, -3.97], [5.09, -3.68], [5.56, -3.33], [6, -3], [6, 3], [6, 3.86], [8, 3]], [[8, 3], [6, 3.86], [6, 3], [2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [8, 3]], [[8, 3], [6, 3.86], [3.33, 5], [2, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [6, 9], [8, 3]]]
a14=[];
a15=[];
a16=[[[-6, 9], [-0.37, 2.56], [0, 3], [0.8, 3.8], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [0, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [-0.12, 2.28], [0, 3], [0.8, 3.8], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [0, 3], [1.33, 3], [2, 3], [3.33, 5], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [-0.12, 2.28], [0, 3], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [-0.51, 2.38], [-0.15, 2.11], [-0.12, 2.28], [0, 3], [0.8, 3.8], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [0, 3], [1.5, 1.5], [1.78, 2.33], [2, 3], [3.33, 5], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [0, 3], [1.5, 1.5], [1.78, 2.33], [1.33, 3], [0.8, 3.8], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [0, 3], [1.33, 3], [1.78, 2.33], [2, 3], [3.33, 5], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [0, 3], [1.33, 3], [2, 3], [3.33, 5], [6, 9], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [0, 3], [0.8, 3.8], [1.33, 3], [2, 3], [3.33, 5], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [-0.12, 2.28], [0, 3], [1.33, 3], [2, 3], [3.33, 5], [2.4, 5.4], [-6, 9]], [[-6, 9], [-0.37, 2.56], [-0.12, 2.28], [0.36, 1.73], [0.44, 1.67], [0, 3], [0.8, 3.8], [2.4, 5.4], [-6, 9]]]
a17=[[[6, 9], [2.4, 5.4], [0.8, 3.8], [1.33, 3], [2, 3], [6, 3], [6, 3.86], [3.33, 5], [6, 9]], [[6, 9], [2.4, 5.4], [0.8, 3.8], [1.33, 3], [2, 3], [3.33, 5], [6, 3.86], [8, 3], [6, 9]], [[6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3], [1.5, 1.5], [1.78, 2.33], [2, 3], [3.33, 5], [6, 9]], [[6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3], [1.33, 3], [1.78, 2.33], [2, 3], [3.33, 5], [6, 9]], [[6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3], [1.33, 3], [2, 3], [6, 3], [6, 3.86], [6, 9]], [[6, 9], [2.4, 5.4], [0.8, 3.8], [0, 3], [1.33, 3], [2, 3], [3.33, 5], [6, 3.86], [6, 9]], [[6, 9], [2.4, 5.4], [3.33, 5], [2, 3], [6, 3], [6, -3], [8, -7], [8, 3], [6, 9]], [[6, 9], [2.4, 5.4], [3.33, 5], [6, 3.86], [6, 3], [6, -3], [8, -7], [8, 3], [6, 9]], [[6, 9], [2.4, 5.4], [-6, 9], [-0.37, 2.56], [0, 3], [1.33, 3], [2, 3], [3.33, 5], [6, 9]], [[6, 9], [3.33, 5], [2, 3], [1.78, 2.33], [3.67, -0.5], [4.29, 0.43], [6, 3], [6, 3.86], [6, 9]], [[6, 9], [3.33, 5], [2, 3], [6, 3], [6, -3], [5.67, -3.5], [8, -7], [8, 3], [6, 9]], [[6, 9], [3.33, 5], [2, 3], [6, 3], [6, -3], [8, -7], [8, 3], [6, 3.86], [6, 9]], [[6, 9], [3.33, 5], [2, 3], [6, 3], [4.5, 0], [6, -3], [8, -7], [8, 3], [6, 9]], [[6, 9], [3.33, 5], [6, 3.86], [6, 3], [6, -3], [5.67, -3.5], [8, -7], [8, 3], [6, 9]], [[6, 9], [3.33, 5], [6, 3.86], [6, 3], [4.5, 0], [6, -3], [8, -7], [8, 3], [6, 9]], [[6, 9], [6, 3.86], [6, 3], [4.29, 0.43], [4.5, 0], [6, -3], [8, -7], [8, 3], [6, 9]], [[6, 9], [6, 3.86], [6, 3], [6, -3], [5.56, -3.33], [5.67, -3.5], [8, -7], [8, 3], [6, 9]], [[6, 9], [6, 3.86], [6, 3], [6, -3], [5.67, -3.5], [5.35, -3.97], [8, -7], [8, 3], [6, 9]], [[6, 9], [6, 3.86], [6, 3], [4.5, 0], [6, -3], [5.67, -3.5], [8, -7], [8, 3], [6, 9]], [[6, 9], [6, 3.86], [6, 3], [4.5, 0], [4, -1], [6, -3], [8, -7], [8, 3], [6, 9]]]
本节到此结束,欲知后事如何,请看下回分解。