Replace code with a variable Python -
i have program in part of code has modified constantly:
var = 'math.sin(x*y)*math.sin(x*y)' while (x <= vfinal) , (y <= vfinal): v1 = bm.verts.new((round(x,3),round(y,3),var)) x = x + precision v2 = bm.verts.new((round(x,3),round(y,3),var)) y = y + precision x = x - precision v3 = bm.verts.new((round(x,3),round(y,3),var)) x = x + precision v4 = bm.verts.new((round(x,3),round(y,3),var)) bm.faces.new((v1,v2,v4,v3)) y = y - precision if (round(x,1) == vfinal): y = y + precision x = vinicial
since math.sin(x*y)*math.sin(x*y)
appears 4 times (possibly more once expand program), want change program changing whats stored in var
.
so far tried making var string, gives error because bm.verts.new
wont accept strings. tried removing ' ' in var, make number, won't give desired result further down because x
, y
change constantly. thing worked writing math.sin(x*y)math.sin(xy) 4 times, tedious , im lazy.
is there way want? if not, should do?
rather trying dynamically execute code, can make var
function:
var = lambda x, y: math.sin(x * y) * math.sin(x * y)
or if prefer vanilla function:
def var(x, y): return math.sin(x * y) * math.sin(x * y)
you can reuse logic calling function. example:
v1 = bm.verts.new((round(x,3),round(y,3),var(x, y)))
Comments
Post a Comment