擅长:python、mysql、java
<p>你甚至不需要<code>pointDict2</code>。您可以执行以下操作:</p>
<pre><code>import math
startOid = ...
# While there are more elements to draw
while len(pointDict) > 1:
shape = pointDict.pop(startOid)
X = shape.centroid.X
Y = shape.centroid.Y
Z = shape.centroid.Z
nextOid = None
minSquaredDist = math.inf
for otherOid, otherShape in pointDict.items():
otherX = otherShape.centroid.X
otherY = otherShape.centroid.Y
otherX = otherShape.centroid.Z
squaredDist = (X - otherX) ** 2 + (Y - otherY) ** 2 + (Z - otherZ) ** 2
if squaredDist < minSquaredDist:
minSquaredDist = squaredDist
nextOid = otherOid
minDist = math.sqrt(minSquaredDist)
print minDist, nextOid
startOid = nextOid
</code></pre>