Python 搅拌机:bmesh紫外线坐标错误?

Python 搅拌机:bmesh紫外线坐标错误?,python,blender,Python,Blender,我在blender python中编写了一个函数,该函数应该搜索bmesh uv层中的两个循环,该层应该既没有相同的u坐标,也没有相同的v坐标。他们也应该来自同一张脸。但是,它工作不正常,代码在两者之间产生奇怪的输出,这可以从下面的print命令的输出中看出。 print(loop1[uv\u layer].uv)命令输出正确,但如果我使用print(loop1[uv\u layer].uv[1])打印出单个值,则输出错误 谢谢你的帮助 def get_different_uv_loops(bm

我在blender python中编写了一个函数,该函数应该搜索bmesh uv层中的两个循环,该层应该既没有相同的u坐标,也没有相同的v坐标。他们也应该来自同一张脸。但是,它工作不正常,代码在两者之间产生奇怪的输出,这可以从下面的print命令的输出中看出。
print(loop1[uv\u layer].uv)
命令输出正确,但如果我使用
print(loop1[uv\u layer].uv[1])
打印出单个值,则输出错误

谢谢你的帮助

def get_different_uv_loops(bm):

loop1 = None
loop2 = None

for f in bm.faces:
    if loop2 is None:
        # set start loop
        for start_loop in f.loops:
            if loop2 is None:
                loop1 = start_loop

                # compare start loop uvs against other loop uvs from face
                for l in f.loops:
                    if loop2 is None:
                        # is u and v of compared loop different from start loop u and v?
                        if loop1[uv_layer].uv[0] != l[uv_layer].uv[0] and \
                            loop1[uv_layer].uv[1] != l[uv_layer].uv[1]:

                            print(loop1[uv_layer].uv[0])
                            print(loop1[uv_layer].uv[1])
                            print(l[uv_layer].uv[0])
                            print(l[uv_layer].uv[1])

                            loop2 = l
                            face = f 

                            print(loop1[uv_layer].uv)
                            print(loop2[uv_layer].uv)
                    else:
                        break
            else:
                break
    else:
        break

return (loop1, loop2, face)
输出:

0.5
1.490115550950577e-07
1.0
0.5 
<Vector (0.5000, 0.000)>
<Vector (1.0000, 0.000)>
0.5
1.49011550950577E-07
1
0.5

第一个变量与相关,但不确定第二个向量为何变化0.5。您可能希望使用来比较位置。有帮助吗?好吧,这似乎是一个取整问题。当我将round()应用于这些值时,它们很好。