V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cqcn1991
V2EX  ›  问与答

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

  •  
  •   cqcn1991 · 2015-05-17 11:09:35 +08:00 · 1599 次点击
    这是一个创建于 3489 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我只会这样求,但是显然对于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倍
    再或者,求几分点等等

    3 条回复    2015-05-17 13:50:35 +08:00
    Septembers
        1
    Septembers  
       2015-05-17 13:32:00 +08:00
    Valyrian
        2
    Valyrian  
       2015-05-17 13:44:41 +08:00
    N维的话for loop一下不就行了。。
    Septembers
        3
    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]
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:18 · PVG 10:18 · LAX 18:18 · JFK 21:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.