Python 搅拌机:bmesh紫外线坐标错误?
我在blender python中编写了一个函数,该函数应该搜索bmesh uv层中的两个循环,该层应该既没有相同的u坐标,也没有相同的v坐标。他们也应该来自同一张脸。但是,它工作不正常,代码在两者之间产生奇怪的输出,这可以从下面的print命令的输出中看出。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
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()应用于这些值时,它们很好。