Python Tutorials | (back to the list of tutorials) |
The sample input file used in the example is below.
The input bitmap used in the example is this.
add_library('igeo') size(480, 360, IG.GL) IG.open("surface6.3dm") surfaces = IG.surfaces() map = IImageMap("map1.jpg") for surf in surfaces : unum = 50 vnum = 50 uinc = 1.0/unum vinc = 1.0/vnum for i in range(unum) : for j in range(vnum) : val = map.get( i*uinc, j*vinc ) pt1 = surf.pt( i*uinc, j*vinc ) pt2 = surf.pt( i*uinc, j*vinc, val*-10 ) ICurve(pt1, pt2).clr(0)
The input bitmap used in the example is this.
add_library('igeo') size(480, 360, IG.GL) IG.open("surface7.3dm") surfaces = IG.surfaces() map = IImageMap("map1.jpg") for surf in surfaces : unum = 20 vnum = 20 uinc = 1.0/unum vinc = 1.0/vnum for i in range(unum) : for j in range(vnum) : val = map.get( i*uinc, j*vinc ) pt11 = surf.pt( i*uinc, j*vinc ) pt21 = surf.pt( (i+1)*uinc, j*vinc ) pt12 = surf.pt( i*uinc, (j+1)*vinc, val*-4 ) pt22 = surf.pt( (i+1)*uinc, (j+1)*vinc ) ISurface(pt11, pt12, pt22, pt21).clr(.3) surf.del()
Here is the input bitmap used in the example.
add_library('igeo') size(480, 360, IG.GL) IG.open("surface7.3dm") surfaces = IG.surfaces() map = IImageMap("map1.jpg") for surf in surfaces : unum = 20 vnum = 20 uinc = 1.0/unum vinc = 1.0/vnum for i in range(unum) : for j in range(vnum) : val = map.get( i*uinc, j*vinc ) pt11 = surf.pt( i*uinc, j*vinc ) pt21 = surf.pt( (i+1)*uinc, j*vinc ) pt12 = surf.pt( i*uinc, (j + val)*vinc ) pt22 = surf.pt( (i+1)*uinc, (j + val)*vinc ) ISurface(pt11, pt12, pt22, pt21).clr(.3) surf.del()
add_library('igeo') size(480, 360, IG.GL) IG.open("surface7.3dm") surfaces = IG.surfaces() map = IImageMap("map1.jpg") for surf in surfaces : unum = 20 vnum = 20 uinc = 1.0/unum vinc = 1.0/vnum for i in range(unum) : for j in range(vnum) : val = map.get( i*uinc, j*vinc ) pt11 = surf.pt( i*uinc, j*vinc ) pt21 = surf.pt( (i + val)*uinc, j*vinc ) pt12 = surf.pt( i*uinc, (j + 1)*vinc ) pt22 = surf.pt( (i + val )*uinc, (j + 1)*vinc ) ISurface(pt11, pt12, pt22, pt21).clr(.3) surf.del()
add_library('igeo') size(480, 360, IG.GL) IG.open("surface7.3dm") surfaces = IG.surfaces() map = IImageMap("map1.jpg") for surf in surfaces : unum = 20 vnum = 20 uinc = 1.0/unum vinc = 1.0/vnum for i in range(unum) : for j in range(vnum) : val = map.get( i*uinc, j*vinc ) pt11 = surf.pt( i*uinc, j*vinc ) pt21 = surf.pt( (i + 1)*uinc, j*vinc ) pt12 = surf.pt( i*uinc, (j + (1-val) )*vinc ) pt22 = surf.pt( (i + 1)*uinc, (j + (1-val) )*vinc ) panel = ISurface(pt11, pt12, pt22, pt21).clr(.2) center = surf.pt( (i+0.5)*uinc, (j+0.5)*vinc ) normal = surf.nml( (i+0.5)*uinc, (j+0.5)*vinc ) panel.rot(center, normal, val*PI/4 ) surf.del()
add_library('igeo') size(480, 360, IG.GL) IG.open("surface7.3dm") surfaces = IG.surfaces() map = IImageMap("map1.jpg") for surf in surfaces : unum = 40 vnum = 40 uinc = 1.0/unum vinc = 1.0/vnum for i in range(unum) : for j in range(vnum) : val = map.get( i*uinc, j*vinc ) pt11 = surf.pt( i*uinc, j*vinc ) pt21 = surf.pt( (i + 1)*uinc, j*vinc ) pt12 = surf.pt( i*uinc, (j + 1)*vinc ) pt22 = surf.pt( (i + 1)*uinc, (j + 1)*vinc ) panel = ISurface(pt11, pt12, pt22, pt21).clr(.2) center = surf.pt( (i+0.5)*uinc, (j+0.5)*vinc ) # val is inverted by subtraction panel.scale(center, 1 - val ) surf.del()
The input bitmap used in the example is this.
add_library('igeo') size(480, 360, IG.GL) IG.open("surface7.3dm") surfaces = IG.surfaces() map = IImageMap("map2.jpg") for surf in surfaces : unum = 40 vnum = 40 uinc = 1.0/unum vinc = 1.0/vnum for i in range(unum) : for j in range(vnum) : val = map.get( i*uinc, j*vinc ) pt11 = surf.pt( i*uinc, j*vinc ) pt21 = surf.pt( (i + 1)*uinc, j*vinc ) pt12 = surf.pt( i*uinc, (j + 1)*vinc, val*-4 ) pt22 = surf.pt( (i + 1)*uinc, (j + 1)*vinc ) panel = ISurface(pt11, pt12, pt22, pt21) panel.clr(map.clr( i*uinc, j*vinc )) surf.del()