当随机化它们的位置MAYA时,如何阻止多边形物体相互产生

时间:2015-08-04 14:42:57

标签: python random collision-detection maya

我正在编写一个脚本,我在Maya网格上生成多边形的随机实例。但是,我不知道如何阻止这些立方体在每个或彼此内部产生。我听说过在互联网上抛出的边界框,但我不确定如何制作一个。有人可以帮助我,我已经做了好几天了。 (我用Python编码)

1 个答案:

答案 0 :(得分:1)

如果将每个多维数据集的位置保存为元组(),则可以将它们保存在集合中。然后,每次掷骰子以获取新位置时,只需检查该组,如果已使用该组合,则重新滚动:

import random
already_seen = set()
created = []
while len(created) < 11:
    x = random.randint(-10, 10)
    y = random.randint(-10,10)
    z = random.randint(-10,10)
    pos = (x, y, z)
    if pos not in already_seen:
       already_seen.add(pos)
       node, shape = cmds.polyCube()
       cmds.xform(node, t = pos)
       created.append(node)

这会使用整数位置,因为这样可以让您远离检查每个新点与所有先前点的距离。您可以将整数位置视为“单元格”,并在该单元格中添加较小的随机偏移量,以保证其不那么严格。