Python: 怎么求 N 维点集的中点?

2015-05-17 11:09:35 +08:00
 cqcn1991

我只会这样求,但是显然对于N维来说,这个样子太累了...

rectangle = [(0,0,0),(0,1,0),(1,1,0),(1,0,0)]
x, y, z = zip(*rectangle)
centroid = (sum(x)/len(x), sum(y)/len(y), sum(z)/len(z))

不知道合适的语法应该怎么写?

另外,再求教一下,3d geometry操作的lib有何推荐?
比如我想rectangle.z = z0
或者rectangle.scale((0,0,1), 0.5),朝着某个点缩放坐标,0.5倍
再或者,求几分点等等

1540 次点击
所在节点    问与答
3 条回复
Septembers
2015-05-17 13:32:00 +08:00
Valyrian
2015-05-17 13:44:41 +08:00
N维的话for loop一下不就行了。。
Septembers
2015-05-17 13:50:35 +08:00
>>> rectangle = [(0, 0, 0), (0, 1, 0), (1, 1, 0), (1, 0, 0)]
>>> centroid = [sum(x) / len(x) for x in zip(*rectangle)]
>>> centroid
[0, 0, 0]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/191664

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX