发出矩阵中彼此调用的值,python

时间:2019-01-14 11:00:45

标签: python houdini

这是我的第一篇文章,所以让我知道是否需要更改任何内容!

我已经基于以下输入创建了一个网格:

1;2;12;12;12  
11;12;2;12;12  
1;2;12;2;12  
11;12;2;1;2  

要创建此网格,请我使用了这段代码

node = hou.pwd()
geo = node.geometry()

text = node.evalParm('text')  
lines = text.splitlines()  
numbers = [map(int, line.split(';') ) for line in lines]  

geo.addAttrib(hou.attribType.Point, 'instance', -1)  

for row, n in enumerate(numbers):  
    for col, value in enumerate(n):  
    pos = (col, 0.0, row)  
    pt_add = geo.createPoint()  
    pt_add.setAttribValue('instance', value)  
    pt_add.setPosition(pos)   

这很好用,并创建点间距为1且具有正确值的网格。 现在我要执行以下操作

if value != 0:
        a = #Value of current index
        b = #Value of index above
        if len(a) < len(b):
            if a[-len(a)] == b[-len(a)]:            
                a = '0'
                b = b
            else:
                pass
        else: 
            if len(a)== len(b):
                if len(a) < 2:
                    pass
                else:
                    a = '0'
                    b = b + 'x'
            else:
                if a[-len(a)] == b[-len(a)]: 
                    b = a + 'y'
                    a = '0'
                else:
                    pass 

现在,我假设我需要再次遍历行和列,但是如果我使用for循环这样做,那么它将不允许我在该列中调用上面的索引值。有人可以帮我解决这个问题吗?而且我需要将“实例”的值更改为新值。

作为我要达到的目标的简要说明: Example image

编辑:向int添加x或y以外的内容,以区分在其下将1更改为“ 0”的“ 11”和在其下将2或3更改为“ 0”的“ 11”。

0 个答案:

没有答案