def ant(scl): save_res = irit.GetResolution() bodyall = antbody() body = irit.nth(bodyall, 1) eyes = irit.nth(bodyall, 2) leg = antleg() llegs = irit.list( leg * irit.sc(1.1) * irit.sx(1.3) * irit.ry((-45)) * irit.trans( (0.1, 0, 1.02)), leg * irit.sc(1.3) * irit.ry(10) * irit.trans((0.1, 0.05, 1)), leg * irit.sc(1.2) * irit.sx(1.4) * irit.ry(40) * irit.trans( (0.1, 0.02, 0.95))) irit.SetResolution(20) irit.attrprop(llegs, "u_resolution", irit.GenRealObject(0.2)) antennas = irit.list( antantenna() * irit.ry((-110)) * irit.trans(((-0.02), 0.2, 1.6)), antantenna() * irit.ry((-70)) * irit.trans((0.02, 0.2, 1.6))) irit.attrprop(antennas, "u_resolution", irit.GenRealObject(0.2)) body = (body + irit.gpolygon(llegs, 1) + irit.gpolygon(llegs, 1) * irit.sx( (-1)) + irit.gpolygon(antennas, 1)) irit.attrib(body, "rgb", irit.GenStrObject("255,50,50")) irit.SetResolution(save_res) retval = irit.list( body, eyes) * irit.sz(1.3) * irit.sc(1) * irit.ty(0.28785) * irit.rx(90) return retval
def antanim(scl): save_res = irit.GetResolution() bodyall = antbody() body = irit.nth(bodyall, 1) eyes = irit.nth(bodyall, 2) llegs = irit.list( antlleganim(1) * irit.sc(1.1) * irit.sx(1.3) * irit.ry( (-45)) * irit.trans((0.1, 0, 1.02)), antlleganim((-1)) * irit.sc(1.3) * irit.ry(10) * irit.trans( (0.1, 0.05, 1)), antlleganim(1) * irit.sc(1.2) * irit.sx(1.4) * irit.ry(40) * irit.trans((0.1, 0.02, 0.95))) rlegs = irit.list( antrleganim( (-1)) * irit.sc(1.1) * irit.sx(1.3) * irit.ry(45) * irit.trans( ((-0.1), 0, 1.02)), antrleganim(1) * irit.sc(1.3) * irit.ry((-10)) * irit.trans( ((-0.1), 0.05, 1)), antrleganim((-1)) * irit.sc(1.2) * irit.sx(1.4) * irit.ry( (-40)) * irit.trans(((-0.1), 0.02, 0.95))) irit.SetResolution(20) antennas = irit.list( antantenna() * irit.ry((-110)) * irit.trans(((-0.02), 0.2, 1.6)), antantenna() * irit.ry((-70)) * irit.trans((0.02, 0.2, 1.6))) irit.attrprop(antennas, "u_resolution", irit.GenRealObject(0.2)) body = (body + irit.gpolygon(antennas, 1)) irit.attrib(body, "rgb", irit.GenStrObject("255,50,50")) irit.SetResolution(save_res) retval = irit.list( body, llegs, rlegs, eyes) * irit.sz(1.3) * irit.sc(1) * irit.ty(0.28785) * irit.rx(90) mov_y = irit.creparam( irit.ctlpt( irit.E1, 0 ) + \ irit.ctlpt( irit.E1, (-1 ) ), 0, 1.2 ) irit.attrib(retval, "animation", mov_y) return retval
irit.SetResolution(res) srf1 = irit.gpolygon((-irit.sweepsrf(irit.coerce(cross, irit.KV_OPEN), direc, irit.GenIntObject(0))), 1) irit.free(cross) irit.free(direc) irit.SetResolution(res * 5) cyl1 = irit.cylin((0, 0, (-1)), (0, 0, 2), 1.15, 3) srf2 = srf1 * cyl1 irit.free(cyl1) irit.SetResolution(res * 5) cyl2 = irit.cylin((0, 0.2, (-1)), (0, 0, 2), 0.6, 3) srf3 = srf1 * cyl2 * irit.sz(4) * irit.sx(0.9) * irit.ty((-0.15)) irit.free(srf1) irit.free(cyl2) srf4 = (srf2 - srf3) irit.free(srf2) irit.free(srf3) cross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-0.5 ), 0, 0.5 ), \ irit.ctlpt( irit.E3, (-0.5 ), 0, 0.23 ), \ irit.ctlpt( irit.E3, (-0.3 ), 0, 0.23 ), \ irit.ctlpt( irit.E3, 0.3, 0, 0.23 ), \ irit.ctlpt( irit.E3, 0.5, 0, 0.23 ), \ irit.ctlpt( irit.E3, 0.5, 0, 0.5 ) ), irit.list( irit.KV_OPEN ) ) irit.SetResolution(res)
c = irit.nth( irit.rrinter(irit.cmesh(r1, irit.ROW, 0), irit.cmesh(r1, irit.ROW, 1), irit.cmesh(r2, irit.ROW, 0), irit.cmesh(r2, irit.ROW, 1), 10, 0), 1) irit.color(c, irit.RED) irit.adwidth(c, 3) irit.interact(irit.list(r1, r2, c)) zerosetsrf = irit.rrinter(irit.cmesh(r1, irit.ROW, 0), irit.cmesh(r1, irit.ROW, 1), irit.cmesh(r2, irit.ROW, 0), irit.cmesh(r2, irit.ROW, 1), 10, 1) zerosetsrfe3 = irit.coerce(zerosetsrf, irit.E3) * irit.rotx((-90)) * irit.roty( (-90)) * irit.sz(0.1) zeroset = irit.contour(zerosetsrfe3, irit.plane(0, 0, 1, 1e-005)) irit.color(zeroset, irit.RED) irit.adwidth(zeroset, 3) irit.interact(irit.list(irit.GetAxes(), zerosetsrfe3, zeroset)) # ############################################################################ # # Case 2 # c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-1 ), 0, (-1 ) ), \ irit.ctlpt( irit.E3, 0, 1, (-1 ) ), \ irit.ctlpt( irit.E3, 0.3, 0, (-1 ) ), \ irit.ctlpt( irit.E3, 1, 0, (-1 ) ) ) )
irit.symbprod(ms1, ms1))) # # Examine MZERO # s1 = irit.bivariate2bezier("math.pow(x, 2) + math.pow(y, 2) - 1", 2, 2) s1 = irit.coerce( irit.sregion( irit.sregion( s1, irit.COL, (-3 ), 3 ), irit.ROW, (-3 ),\ 3 ), irit.MULTIVAR_TYPE ) s2 = irit.bivariate2bezier("math.pow((x + 1), 2) + math.pow(y, 2) - 1", 2, 2) s2 = irit.coerce( irit.sregion( irit.sregion( s2, irit.COL, (-3 ), 3 ), irit.ROW, (-3 ),\ 3 ), irit.MULTIVAR_TYPE ) sol = irit.mzero(irit.list(s1, s2), 0.01, 1e-006) irit.color(sol, irit.RED) m = irit.rotx((-90)) * irit.roty((-90)) * irit.sz(0.1) irit.interact( irit.list( irit.coerce(irit.coerce(s1, irit.SURFACE_TYPE), irit.E3) * m, irit.coerce(irit.coerce(s2, irit.SURFACE_TYPE), irit.E3) * m, irit.coerce(irit.coerce(s2, irit.SURFACE_TYPE), irit.E3) * m * irit.sz(0), sol)) sol = irit.mzero(irit.list(s1), 0.01, 1e-006) irit.color(sol, irit.RED) m = irit.rotx((-90)) * irit.roty((-90)) * irit.sz(0.1) irit.interact( irit.list( irit.coerce(irit.coerce(s1, irit.SURFACE_TYPE), irit.E3) * m, irit.coerce(irit.coerce(s2, irit.SURFACE_TYPE), irit.E3) * m * irit.sz(0), sol))
c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, 0.3, (-0.7 ) ), \ irit.ctlpt( irit.E2, (-0.2 ), (-0.7 ) ), \ irit.ctlpt( irit.E2, 0.7, 0.6 ) ) ) irit.color( c1, irit.YELLOW ) irit.attrib( c1, "dwidth", irit.GenRealObject(2 )) irit.attrib( c1, "width", irit.GenRealObject(0.007 )) irit.color( c2, irit.YELLOW ) irit.attrib( c2, "dwidth", irit.GenRealObject(2 )) irit.attrib( c2, "width", irit.GenRealObject(0.007 )) bisectsrf = irit.cbisector2d( irit.list( c1, c2 ), 1, 1, 20, 1, 0 ) bisectsrfe3 = irit.coerce( bisectsrf, irit.E3 ) * \ irit.rotx( (-90 ) ) * \ irit.roty( (-90 ) ) * \ irit.sz( 0.1 ) irit.color( bisectsrfe3, irit.GREEN ) irit.attrib( bisectsrfe3, "width", irit.GenRealObject(0.005 )) irit.SetResolution( 60) cntrs = irit.contour( bisectsrfe3, irit.plane( 0, 0, 1, 1e-008 ) ) irit.adwidth( cntrs, 2 ) irit.attrib( cntrs, "width", irit.GenRealObject(0.015 )) irit.interact( irit.list( bisectsrfe3, pl, cntrs, view_mat3d ) ) bisectcrvs = irit.cbisector2d( irit.list( c1, c2 ), 0, 1, 30, 1,\ 0 ) irit.attrib( bisectcrvs, "dwidth", irit.GenRealObject(4 )) irit.attrib( bisectcrvs, "width", irit.GenRealObject(0.012 ))
irit.ctlpt( irit.E3, 0, 0, 1 ) ) ) r1 = irit.cbezier( irit.list( irit.ctlpt( irit.E1, 1 ) ) ) s2 = irit.cylinsrf( 4, 1 ) * irit.tz( (-2 ) ) * irit.rx( 90 ) * irit.tx( 0.5 ) irit.color( s2, irit.MAGENTA ) c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0.5, (-1 ), 0 ), \ irit.ctlpt( irit.E3, 0.5, 1, 0 ) ) ) r2 = irit.cbezier( irit.list( irit.ctlpt( irit.E1, 1 ) ) ) zerosetsrf = irit.coerce( irit.gginter( c1, r1, c2, r2, 10, 1 ),\ irit.E3 ) * irit.rotx( (-90 ) ) * irit.roty( (-90 ) ) irit.SetResolution( 100) zeroset = irit.contour( zerosetsrf, irit.plane( 0, 0, 1, 0 ) ) irit.color( zeroset, irit.GREEN ) irit.adwidth( zeroset, 3 ) irit.interact( irit.list( zerosetsrf * irit.sz( 0.1 ), zeroset, irit.GetAxes() ) * irit.sc( 3 ) ) c = irit.nth( irit.gginter( c1, r1, c2, r2, 100, 0 ),\ 1 ) irit.interact( irit.list( s1, s2, c ) ) irit.save( "rngrng1", irit.list( zerosetsrf, s1, s2, c ) ) a = 0.9 while ( a >= 0.05 ): s2 = irit.cylinsrf( 4, 1 ) * irit.tz( (-2 ) ) * irit.rx( 90 ) * irit.tx( a ) irit.color( s2, irit.MAGENTA ) c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, a, (-1 ), 0 ), \ irit.ctlpt( irit.E3, a, 1, 0 ) ) ) r2 = irit.cbezier( irit.list( \
irit.attrib( c, "gray", irit.GenRealObject(0.5) ) irit.awidth( c, 0.02 ) co = irit.offset( c, irit.GenRealObject(ofst), 0.001, 1 ) dms = buildoffsetvisibilitymap( c, step, ofst ) irit.attrib( dms, "rgb", irit.GenStrObject("128, 128, 255" )) views = computeviews( c, dms, "" ) viewptcurves = irit.nil( ) i = 1 while ( i <= irit.SizeOf( views ) ): t = irit.FetchRealObject(irit.nth( views, i ) * step) pt = irit.coerce( irit.ceval( co, t ), irit.POINT_TYPE ) * irit.tz( 1 ) v = offsetcrvlist( irit.cvisible( c, irit.Fetch3TupleObject(pt), 0.0001 ), 1/100.0 + i/130 ) irit.attrib( v, "dash", irit.nth( dashlist, i ) ) irit.awidth( v, 0.009 ) rgb = randrgb( ) pt = pt * irit.sz( 0.01 ) irit.attrib( v, "rgb", irit.GenStrObject(rgb )) irit.attrib( pt, "rgb", irit.GenStrObject(rgb )) irit.snoc( pt, viewptcurves ) irit.snoc( v, viewptcurves ) i = i + 1 irit.interact( irit.list( c, viewptcurves ) ) irit.save( "art" + str(j) + "glry", irit.list( c, viewptcurves ) ) j = j + 1 # ############################################################################ irit.free( crvs ) irit.free( c1 ) irit.free( c2 ) irit.free( c3 )
(0, irit.max(maxy, 0), 0)), 1) + irit.poly( irit.list((0, 0, irit.min(minz, 0)), (0, 0, irit.max(maxz, 0))), 1)) irit.color(ax, irit.RED) irit.attrib(ax, "width", irit.GenRealObject(0.02)) retval = irit.list(pl, ax) irit.viewobj(retval) irit.printf( "xdomain = [%lf %lf], ydomain = [%lf %lf], zdomain = [%lf %lf]\n", irit.list(minx, maxx, miny, maxy, minz, maxz)) return retval echosrc = irit.iritstate("echosource", echosrc) irit.free(echosrc) irit.viewclear() fn = plotfunc2d((-1), 5, 50) irit.pause() irit.viewclear() irit.SetViewMatrix( irit.sz(5) * irit.rotz(35) * irit.rotx((-60)) * irit.sc(0.1)) irit.viewobj(irit.GetViewMatrix()) fn = plotfunc3d((-10), 10, (-10), 10, 50, 10) irit.pause() irit.SetViewMatrix(save_mat) irit.free(fn)
view_mat2 = irit.GetViewMatrix() * irit.sc(0.5) * irit.ty(0.5) irit.viewstate("depthcue", 0) irit.viewstate("drawstyle", 1) irit.viewstate("polyaprx", 1) # ############################################################################ c4 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, (-0.6 ), (-0.3 ), 0 ), \ irit.ctlpt( irit.E2, 0.6, (-0.3 ) ), \ irit.ctlpt( irit.E2, 0.6, 0.3 ), \ irit.ctlpt( irit.E2, (-0.6 ), 0.3 ) ), irit.list( irit.KV_PERIODIC ) ) k = irit.crvkernel(c4, 0, 0, irit.list(3, 3, 3), 0) irit.attrib(k, "rgb", irit.GenStrObject("1,1,1")) irit.interact(irit.list(c4, bg, k * irit.sz(0), view_mat1)) irit.attrib(k, "rgb", irit.GenStrObject("0,255,255")) irit.interact(irit.list(c4, k * irit.sz((-3)), view_mat2)) k1 = irit.crvkernel(c4, 20, 0, irit.list(3, 3, 3), 0) irit.attrib(k1, "rgb", irit.GenStrObject("100,1,1")) k2 = irit.crvkernel(c4, (-20), 0, irit.list(3, 3, 3), 0) irit.attrib(k2, "rgb", irit.GenStrObject("1,100,1")) irit.interact(irit.list(c4, bg, k1 * irit.sz(0), k2 * irit.sz(0), view_mat1)) s = irit.crvkernel(c4, 0, 0, irit.list(0.25, (-0.01)), 1) irit.attrib(s, "rgb", irit.GenStrObject("255,0,255")) irit.interact(irit.list(c4, k * irit.sz((-3)), s, view_mat2))
c2 * irit.sc(0.5) * irit.tz(1.2), c1 * irit.sc(0.4) * irit.tz(1.5), c1 * irit.sc(0.2) * irit.tz(1.6)), 3, irit.KV_OPEN) drawbitangencies( irit.list( s, s ), 0, 0.125, (-1e-006 ), 0.1,\ 1, "srf2tan" ) # ############################################################################ s1 = irit.sfromcrvs( irit.list(c2 * irit.sc(0.001), c2, c2 * irit.tz(1), c2 * irit.sc(0.001) * irit.tz(1)), 3, irit.KV_OPEN) * irit.sc(0.1) s2 = s1 * irit.ry(14) * irit.tx(0.6) * irit.tz(0.02) s3 = s1 * irit.rx(12) * irit.ty(0.6) * irit.tx(0.3) * irit.tz(0.01) drawtritangencies( irit.list(s1, s2, s3) * irit.sz(1), 1, 0.5, (-1e-006), "srf3tan") drawtritangencies( irit.list(s1, s2, s3) * irit.sz(1), 0, 0.5, (-1e-006), "srf4tan") # ############################################################################ irit.free(c1) irit.free(c2) irit.free(s) irit.free(s1) irit.free(s2) irit.free(s3)
c2 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, (-0.279 ), (-1.54 ) ), \ irit.ctlpt( irit.E3, 0, (-0.483 ), (-0.896 ) ), \ irit.ctlpt( irit.E3, 0, (-0.762 ), (-0.631 ) ), \ irit.ctlpt( irit.E3, 0, (-1.07 ), (-0.0984 ) ), \ irit.ctlpt( irit.E3, 0, (-0.747 ), 0.761 ), \ irit.ctlpt( irit.E3, 0, 0, 1 ), \ irit.ctlpt( irit.E3, 0, 0.747, 0.761 ), \ irit.ctlpt( irit.E3, 0, 1.07, (-0.0984 ) ), \ irit.ctlpt( irit.E3, 0, 0.762, (-0.631 ) ), \ irit.ctlpt( irit.E3, 0, 0.483, (-0.896 ) ), \ irit.ctlpt( irit.E3, 0, 0.279, (-1.54 ) ), \ irit.ctlpt( irit.E3, 0, 0, (-1.78 ) ) ), irit.list( irit.KV_PERIODIC ) ) crvs = irit.list( c * irit.sc(0.001) * irit.trans((1.02, 0, 0.18)), c * irit.sc(0.07) * irit.sz(0.4) * irit.trans((1.02, 0, 0.18)), c * irit.sc(0.18) * irit.sz(0.3) * irit.trans((0.8, 0, 0.16)), c * irit.sc(0.27) * irit.sz(0.5) * irit.trans((0.6, 0, 0.16)), c * irit.sc(0.43) * irit.sz(0.64) * irit.trans((0.3, 0, 0.2)), c * irit.sc(0.54) * irit.sz(0.7) * irit.trans((0, 0, 0.23)), c * irit.sc(0.52) * irit.ry(25) * irit.sz(0.76) * irit.trans( ((-0.34), 0, 0.26)), c * irit.sc(0.41) * irit.sz(1.13) * irit.ry(50) * irit.trans( ((-0.6), 0, 0.32)), c * irit.sc(0.3) * irit.sz(1.3) * irit.ry(65) * irit.trans( ((-0.7), 0, 0.42)), c * irit.sc(0.16) * irit.sz(1.4) * irit.ry(75) * irit.trans( ((-0.71), 0, 0.5)), c * irit.sc(0.16) * irit.sz(1.4) * irit.ry(75) * irit.trans( ((-0.72), 0, 0.53)), c2 * irit.sc(0.2) * irit.sz(1.5) * irit.ry(75) * irit.trans(
# # # Few examples of computing the orthogonality map of a planar curve. # # gershon Elber, August 2004 # unitsquare = ( irit.ctlpt( irit.E2, 0, 0 ) + \ irit.ctlpt( irit.E2, 0, 1 ) + \ irit.ctlpt( irit.E2, 1, 1 ) + \ irit.ctlpt( irit.E2, 1, 0 ) + \ irit.ctlpt( irit.E2, 0, 0 ) ) irit.color(unitsquare, irit.RED) m1 = irit.rotx((-90)) * irit.roty((-90)) m2 = m1 * irit.sz(0) def displayposnormal(crv, t1, t2, scl, bg_obj): pt1 = irit.ceval(crv, irit.FetchRealObject(t1)) pt2 = irit.ceval(crv, irit.FetchRealObject(t2)) n1 = irit.cnormal(crv, irit.FetchRealObject(t1)) n2 = irit.cnormal(crv, irit.FetchRealObject(t2)) ptt1 = (irit.ctlpt(irit.E2, t1, t2) + irit.ctlpt(irit.E2, t1, 0)) irit.color(ptt1, irit.YELLOW) ptt2 = (irit.ctlpt(irit.E2, t1, t2) + irit.ctlpt(irit.E2, 0, t2)) irit.color(ptt2, irit.CYAN) n1 = (irit.coerce( irit.coerce(pt1, irit.POINT_TYPE) + n1 * irit.sc(scl), irit.E2) + pt1) irit.color(n1, irit.YELLOW) n2 = (irit.coerce(
def dup8vrtices( o ): ox = irit.list( o, o * irit.sx( (-1 ) ) ) oy = irit.list( ox, ox * irit.sy( (-1 ) ) ) retval = irit.list( oy, oy * irit.sz( (-1 ) ) ) return retval
irit.free(s2) irit.free(s2a) irit.pause() # ############################################################################ # # A bicubic surface (region of a glass) # c3tmp = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-0.6 ), 0, 0 ), \ irit.ctlpt( irit.E3, (-0.2 ), 0, 0.4 ), \ irit.ctlpt( irit.E3, 0.2, 0, (-0.4 ) ), \ irit.ctlpt( irit.E3, 0.6, 0, 0 ) ) ) s3 = irit.sfromcrvs( irit.list(c3tmp * irit.ty((-0.6)), c3tmp * irit.sz((-1)) * irit.tz(0.1) * irit.ty((-0.2)), c3tmp * irit.ty(0.2) * irit.tz((-0.1)), c3tmp * irit.sz((-1)) * irit.ty(0.6)), 4, irit.KV_OPEN) irit.free(c3tmp) irit.color(s3, irit.RED) pt = irit.point(0, 0, 1) irit.adwidth(pt, 3) irit.color(pt, irit.YELLOW) bisect = irit.sbisector(s3, irit.Fetch3TupleObject(pt)) irit.color(bisect, irit.CYAN) irit.save("sbisect4", irit.list(s3, pt, bisect)) irit.interact(irit.list(s3, pt, bisect))
# ####################################################################### # # Curve matching example: Duck # c = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 0, (-1.3 ) ), \ irit.ctlpt( irit.E3, 0, (-1.5 ), (-1.25 ) ), \ irit.ctlpt( irit.E3, 0, (-0.9 ), 1.1 ), \ irit.ctlpt( irit.E3, 0, 0.9, 1.15 ), \ irit.ctlpt( irit.E3, 0, 1.5, (-1.25 ) ), \ irit.ctlpt( irit.E3, 0, 0, (-1.3 ) ) ) ) irit.view(c, irit.ON) c = c * irit.sy(1.6) * irit.sz(1.3) r1 = irit.coerce( irit.cpower( irit.list( irit.ctlpt( irit.E1, 0 ), \ irit.ctlpt( irit.E1, 0.25 ), \ irit.ctlpt( irit.E1, 0.75 ) ) ), irit.BEZIER_TYPE ) r2 = irit.coerce( irit.cpower( irit.list( irit.ctlpt( irit.E1, 0 ), \ irit.ctlpt( irit.E1, 1.5 ), \ irit.ctlpt( irit.E1, (-0.5 ) ) ) ), irit.BEZIER_TYPE ) c1a = irit.compose(c, r1) c1b = irit.compose(c, r2) c2 = irit.cbspline( 6, irit.list( irit.ctlpt( irit.E3, 0, (-0.279 ), (-1.54 ) ), \ irit.ctlpt( irit.E3, 0, (-0.483 ), (-0.896 ) ), \ irit.ctlpt( irit.E3, 0, (-0.762 ), (-0.631 ) ), \ irit.ctlpt( irit.E3, 0, (-1.07 ), (-0.0984 ) ), \ irit.ctlpt( irit.E3, 0, (-0.747 ), 0.761 ), \
def knight(s, clr): sec4 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0.275, 0 ), \ irit.ctlpt( irit.E2, 0.275, 0.185 ), \ irit.ctlpt( irit.E2, 0.101, 0.442 ), \ irit.ctlpt( irit.E2, 0.051, 0.601 ), \ irit.ctlpt( irit.E2, 0.012, 0.909 ), \ irit.ctlpt( irit.E2, 0.153, 0.843 ), \ irit.ctlpt( irit.E2, 0.309, 0.789 ), \ irit.ctlpt( irit.E2, 0.34, 0.805 ), \ irit.ctlpt( irit.E2, 0.248, 0.879 ), \ irit.ctlpt( irit.E2, 0.359, 0.836 ), \ irit.ctlpt( irit.E2, 0.362, 0.88 ), \ irit.ctlpt( irit.E2, 0.218, 1.014 ), \ irit.ctlpt( irit.E2, 0.061, 1.133 ), \ irit.ctlpt( irit.E2, (-0.132 ), 1.135 ), \ irit.ctlpt( irit.E2, (-0.212 ), 1.062 ), \ irit.ctlpt( irit.E2, (-0.209 ), 0.923 ), \ irit.ctlpt( irit.E2, (-0.156 ), 0.852 ), \ irit.ctlpt( irit.E2, (-0.124 ), 0.578 ), \ irit.ctlpt( irit.E2, (-0.126 ), 0.463 ), \ irit.ctlpt( irit.E2, (-0.263 ), 0.211 ), \ irit.ctlpt( irit.E2, (-0.266 ), 0 ) ), irit.list( irit.KV_OPEN ) ) sec3 = irit.cbspline( 4, irit.list( \ irit.ctlpt( irit.E3, 0.275, 0, 0.143 ), \ irit.ctlpt( irit.E3, 0.275, 0.185, 0.143 ), \ irit.ctlpt( irit.E3, 0.101, 0.442, 0.07 ), \ irit.ctlpt( irit.E3, 0.051, 0.601, 0.05 ), \ irit.ctlpt( irit.E3, 0.012, 0.909, 0.04 ), \ irit.ctlpt( irit.E3, 0.153, 0.843, 0.031 ), \ irit.ctlpt( irit.E3, 0.218, 0.816, 0.03 ), \ irit.ctlpt( irit.E3, 0.319, 0.788, 0.032 ), \ irit.ctlpt( irit.E3, 0.336, 0.806, 0.035 ), \ irit.ctlpt( irit.E3, 0.246, 0.875, 0.034 ), \ irit.ctlpt( irit.E3, 0.393, 0.836, 0.036 ), \ irit.ctlpt( irit.E3, 0.274, 0.943, 0.037 ), \ irit.ctlpt( irit.E3, 0.0825, 1.08, 0.035 ), \ irit.ctlpt( irit.E3, (-0.0448 ), 1.15, 0.035 ), \ irit.ctlpt( irit.E3, (-0.157 ), 1.2, 0.035 ), \ irit.ctlpt( irit.E3, (-0.179 ), 1.12, 0.035 ), \ irit.ctlpt( irit.E3, (-0.213 ), 0.994, 0.035 ), \ irit.ctlpt( irit.E3, (-0.158 ), 0.795, 0.05 ), \ irit.ctlpt( irit.E3, (-0.0873 ), 0.483, 0.07 ), \ irit.ctlpt( irit.E3, (-0.263 ), 0.211, 0.145 ), \ irit.ctlpt( irit.E3, (-0.266 ), 0, 0.143 ) ), irit.list( irit.KV_OPEN ) ) sec2 = irit.cbspline( 4, irit.list( \ irit.ctlpt( irit.E3, 0.137, 0, 0.286 ), \ irit.ctlpt( irit.E3, 0.137, 0.185, 0.286 ), \ irit.ctlpt( irit.E3, 0.047, 0.44, 0.14 ), \ irit.ctlpt( irit.E3, 0.007, 0.6, 0.1 ), \ irit.ctlpt( irit.E3, (-0.0273 ), 0.855, 0.0879 ), \ irit.ctlpt( irit.E3, 0.025, 0.91, 0.0634 ), \ irit.ctlpt( irit.E3, 0.111, 0.886, 0.0608 ), \ irit.ctlpt( irit.E3, 0.151, 0.859, 0.0644 ), \ irit.ctlpt( irit.E3, 0.177, 0.848, 0.0813 ), \ irit.ctlpt( irit.E3, 0.202, 0.838, 0.0785 ), \ irit.ctlpt( irit.E3, 0.28, 0.804, 0.0767 ), \ irit.ctlpt( irit.E3, 0.323, 0.865, 0.0646 ), \ irit.ctlpt( irit.E3, 0.284, 0.93, 0.0615 ), \ irit.ctlpt( irit.E3, 0.173, 1.02, 0.0639 ), \ irit.ctlpt( irit.E3, 0.00423, 1.09, 0.0804 ), \ irit.ctlpt( irit.E3, (-0.275 ), 1.5, 0.07 ), \ irit.ctlpt( irit.E3, (-0.135 ), 1.12, 0.07 ), \ irit.ctlpt( irit.E3, (-0.2 ), 1.05, 0.07 ), \ irit.ctlpt( irit.E3, (-0.155 ), 0.91, 0.07 ), \ irit.ctlpt( irit.E3, (-0.085 ), 0.59, 0.1 ), \ irit.ctlpt( irit.E3, (-0.074 ), 0.468, 0.14 ), \ irit.ctlpt( irit.E3, (-0.133 ), 0.212, 0.29 ), \ irit.ctlpt( irit.E3, (-0.133 ), 0, 0.286 ) ), irit.list( irit.KV_OPEN ) ) sec1 = irit.cbspline( 4, irit.list( \ irit.ctlpt( irit.E3, 0, 0, 0.286 ), \ irit.ctlpt( irit.E3, (-0.004 ), 0.216, 0.286 ), \ irit.ctlpt( irit.E3, (-0.018 ), 0.444, 0.14 ), \ irit.ctlpt( irit.E3, (-0.036 ), 0.62, 0.1 ), \ irit.ctlpt( irit.E3, (-0.061 ), 0.8, 0.08 ), \ irit.ctlpt( irit.E3, (-0.09 ), 1.01, 0.07 ), \ irit.ctlpt( irit.E3, (-0.06 ), 1.04, 0.065 ), \ irit.ctlpt( irit.E3, 0.007, 1.01, 0.065 ), \ irit.ctlpt( irit.E3, 0.165, 0.927, 0.07 ), \ irit.ctlpt( irit.E3, 0.235, 0.897, 0.068 ), \ irit.ctlpt( irit.E3, 0.276, 0.876, 0.072 ), \ irit.ctlpt( irit.E3, 0.235, 0.897, 0.068 ), \ irit.ctlpt( irit.E3, 0.165, 0.927, 0.07 ), \ irit.ctlpt( irit.E3, 0.007, 1.01, 0.065 ), \ irit.ctlpt( irit.E3, (-0.06 ), 1.04, 0.065 ), \ irit.ctlpt( irit.E3, (-0.09 ), 1.01, 0.07 ), \ irit.ctlpt( irit.E3, (-0.061 ), 0.8, 0.08 ), \ irit.ctlpt( irit.E3, (-0.036 ), 0.62, 0.1 ), \ irit.ctlpt( irit.E3, (-0.018 ), 0.444, 0.14 ), \ irit.ctlpt( irit.E3, (-0.004 ), 0.216, 0.286 ), \ irit.ctlpt( irit.E3, 0, 0, 0.286 ) ), irit.list( irit.KV_OPEN ) ) knightbody = (-irit.sfromcrvs( irit.list(sec1, sec2, sec3, sec4, sec3 * irit.sz( (-1)), sec2 * irit.sz((-1)), sec1 * irit.sz( (-1))), 4, irit.KV_OPEN)) irit.attrib(knightbody, "rgb", irit.GenStrObject(clr)) knighteyes = irit.list( irit.spheresrf(0.025) * irit.ty(1) * irit.tz(0.05), irit.spheresrf(0.025) * irit.ty(1) * irit.tz((-0.05))) irit.color(knighteyes, irit.CYAN) retval = irit.list(knightbody, knighteyes) * irit.sc( 0.65 * s) * irit.rx(90) return retval
# Logo frame # hplogo = irit.ruledsrf( irit.ctlpt( irit.E3, 6, (-0.01 ), 6.4 ) + \ irit.ctlpt( irit.E3, 7.7, (-0.01 ), 6.4 ), \ irit.ctlpt( irit.E3, 6, (-0.01 ), 6.8 ) + \ irit.ctlpt( irit.E3, 7.7, (-0.01 ), 6.8 ) ) irit.attrib(hplogo, "rgb", irit.GenStrObject("0,0,255")) # # On-off button # irit.SetResolution(4) onoff = irit.con2((0, (-0.1), 0), (0, 0.3, 0), 0.2, 0.1, 3) * irit.ry(45) * irit.sz(1.5) * irit.tx(0.2) * irit.tz(0.7) irit.SetResolution(20) base = (base - onoff) onoff = irit.box((0.135, 0, 0.6), 0.135, 0.2, 0.2) topfeed = irit.extrude( irit.cbezier( irit.list( irit.ctlpt( irit.E3, 2, 0.51, 6.2 ), \ irit.ctlpt( irit.E3, 3.7, 0.51, 7 ), \ irit.ctlpt( irit.E3, 4.5, 0.51, 7.5 ), \ irit.ctlpt( irit.E3, 5.39, 0.51, 7.5 ) ) ) + \ irit.ctlpt( irit.E3, 5.39, 0.51, 6.01 ) + \ irit.ctlpt( irit.E3, 2, 0.51, 6.01 ) + \ irit.ctlpt( irit.E3, 2, 0.51, 6.2 ), ( 0, 3.98, 0 ), 3 ) drawer1 = irit.ruledsrf( irit.ctlpt( irit.E3, 3.5, 0.38, 0.56 ) + \
irit.color(s1, irit.RED) irit.color(s2, irit.GREEN) i = testinter(s1, s2) all = irit.list(s1, s2, i) irit.interact(all) irit.save("ssi7", all) # # 8, 9. Same as 7 but we scale the Z axis by 0.1 and by 0.01 to create almost # tangent surfaces. # s1a = s1 * irit.sz(0.1) s2a = s2 * irit.sz(0.1) irit.color(s1a, irit.RED) irit.color(s2a, irit.GREEN) i = testinter(s1a, s2a) all = irit.list(s1a, s2a, i) irit.interact(all) irit.save("ssi8", all) s1b = s1 * irit.sz(0.01) s2b = s2 * irit.sz(0.01) irit.color(s1b, irit.RED) irit.color(s2b, irit.GREEN)
srf1 = irit.hermite( irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \ irit.ctlpt( irit.E3, 0.5, 0.2, 0 ), \ irit.ctlpt( irit.E3, 1, 0, 0 ) ) ), irit.cbezier( irit.list( \ irit.ctlpt( irit.E3, 0, 1, 0 ), \ irit.ctlpt( irit.E3, 0.5, 0.8, 0 ), \ irit.ctlpt( irit.E3, 1, 1, 0.5 ) ) ), irit.cbezier( irit.list( \ irit.ctlpt( irit.E3, 0, 2, 0 ), \ irit.ctlpt( irit.E3, 0, 2, 0 ), \ irit.ctlpt( irit.E3, 0, 2, 0 ) ) ), irit.cbezier( irit.list( \ irit.ctlpt( irit.E3, 0, 2, 0 ), \ irit.ctlpt( irit.E3, 0, 2, 0 ), \ irit.ctlpt( irit.E3, 0, 2, 0 ) ) ) ) irit.color(srf1, irit.YELLOW) srf1ms = irit.coerce(irit.smean(srf1, 0), irit.E3) * irit.rotx( (-90)) * irit.roty((-90)) * irit.sz(0.01) irit.color(srf1ms, irit.GREEN) irit.interact(irit.list(srf1, srf1ms)) irit.free(srf1ms) srf1gs = irit.coerce(irit.sgauss(srf1, 0), irit.E3) * irit.rotx( (-90)) * irit.roty((-90)) * irit.sz(0.01) irit.color(srf1gs, irit.GREEN) irit.interact(irit.list(srf1, srf1gs)) irit.save("sgauss", irit.list(srf1, srf1gs)) irit.free(srf1gs) # ############################################################################ # Derive the coefficients of the three surface fundamental forms.
printtest("coerce", mv, irit.coerce(irit.coerce(mv, irit.BEZIER_TYPE), irit.POWER_TYPE)) mv = irit.mvexplicit(4, "a^2 * b^2 + 5 * a * b * c + c^3 - 5 * d * c^3") printtest("coerce", mv, irit.coerce(irit.coerce(mv, irit.BEZIER_TYPE), irit.POWER_TYPE)) mv = irit.mvexplicit(2, "a * 5 * b - b^3 * 3 * a^3") printtest("coerce", mv, irit.coerce(irit.coerce(mv, irit.BEZIER_TYPE), irit.POWER_TYPE)) mv = irit.mvexplicit(1, "a^3 + 3 * a^2 + 15 * a - 7.5") printtest("coerce", mv, irit.coerce(irit.coerce(mv, irit.BEZIER_TYPE), irit.POWER_TYPE)) s1 = s * irit.sx(1) * irit.sy(2) * irit.sz(0.3) * irit.ry(55) mv1 = irit.coerce( irit.tfromsrfs( irit.list(s1, s1 * irit.tx(0.25) * irit.ty(0.5) * irit.tz(0.8), s1 * irit.tz(2)), 3, irit.KV_PERIODIC), irit.MULTIVAR_TYPE) printtest("coerce", irit.meval(irit.coerce(mv1, irit.KV_FLOAT), irit.list(0, 0, 0)), irit.meval(mv1, irit.list(0, 0, 0))) printtest("coerce", irit.meval(irit.coerce(mv1, irit.KV_FLOAT), irit.list(1, 1, 3)), irit.meval(mv1, irit.list(1, 1, 3))) mv1 = irit.coerce( irit.tfromsrfs( irit.list(s1,
irit.tx( 0.1 ) * \ irit.tz( 1.5 ) ) tv = irit.tfromsrfs(discs, 3, irit.KV_OPEN) irit.attrib(tv, "transp", irit.GenRealObject(0.5)) # view( list( irit.GetAxes(), Tv, Teapot ), 1 ); # ############################################################################ # # Let the Teapot and Spheres come out of the teapot... # irit.SetResolution(10) s1 = irit.sphere((0.2, 0.2, 0.8), 0.18) irit.color(s1, irit.YELLOW) s2 = irit.sphere((0.75, 0.25, 0.16667), 0.12) * irit.sz(3) irit.color(s2, irit.MAGENTA) c1 = irit.maxedgelen( irit.triangl( irit.cylin( ( 0.15, 0.85, 0.01 ), ( 0, 0, 0.98 ), 0.1, 3 ), 1 ),\ 0.2 ) irit.color(c1, irit.CYAN) c2 = irit.maxedgelen( irit.triangl( irit.cylin( ( 0.85, 0.85, 0.01 ), ( 0, 0, 0.98 ), 0.1, 3 ), 1 ),\ 0.2 ) irit.color(c2, irit.CYAN) genie = irit.list( teapotorig * irit.sc( 0.15 ) * irit.ry( (-90 ) ) * irit.trans( ( 0.5, 0.4, 0.47 ) ), s1, s2, c1,\ c2 ) b = irit.box((0, 0, 0), 1, 1, 1) irit.attrib(b, "transp", irit.GenRealObject(0.5)) irit.interact(irit.list(irit.GetAxes(), b, genie))
sctn2 = ( arc1a + arc2b + (-arc2b ) * irit.sx( (-1 ) ) + \ (-arc1a ) * irit.sx( (-1 ) ) ) * irit.sc( 0.75 ) sctn3 = ( arc1b + arc2d + (-arc2d ) * irit.sx( (-1 ) ) + \ (-arc1b ) * irit.sx( (-1 ) ) ) * irit.ty( 0.04 ) * irit.sc( 0.65 ) sctn4 = ( arc1b + arc2c + (-arc2c ) * irit.sx( (-1 ) ) + \ (-arc1b ) * irit.sx( (-1 ) ) ) * irit.ty( 0.04 ) * irit.sc( 0.65 ) irit.free( arc1a ) irit.free( arc1b ) irit.free( arc2a ) irit.free( arc2b ) irit.free( arc2c ) irit.free( arc2d ) rldsrf1 = irit.ruledsrf( sctn1, sctn2 * irit.tz( 0.5 ) ) * \ irit.ty( (-0.01 ) ) * irit.tz( (-0.001 ) ) * irit.sz( 1.004 ) piece1a = irit.box( ( (-0.5 ), 0, 0 ), 1, 1, 0.5 ) * rldsrf1 rldsrf2 = irit.ruledsrf( sctn3, sctn4 * irit.tz( 0.5 ) ) * \ irit.ty( (-0.01 ) ) * irit.tz( (-0.001 ) ) * irit.sz( 1.004 ) piece1b = irit.box( ( (-0.5 ), 0, 0 ), 1, 1, 0.5 ) * (-rldsrf2 ) irit.free( rldsrf1 ) irit.free( rldsrf2 ) irit.free( sctn1 ) irit.free( sctn2 ) irit.free( sctn3 ) irit.free( sctn4 ) piece1 = piece1a ^ ( piece1b * irit.rz( (-90 ) ) * irit.tx( 0.5 ) * irit.ty( 0.5 ) ) * irit.tx( (-0.5 ) )
a1 = irit.arrow3d(irit.point(0, 0, 0), irit.vector(1, 1, 1), 1.5, 0.05, 0.5, 0.1) a2 = irit.arrow3d(irit.point(1, 0, 0), irit.vector((-1.5), 0.5, 1), 1, 0.02, 0.2, 0.05) a3 = irit.arrow3d( irit.point( 0, 0.6, 0.8 ), irit.vector( 0.5, 0.7, 0.3 ), 0.5, 0.01, 0.2,\ 0.02 ) irit.interact(irit.list(irit.GetAxes(), a1, a2, a3)) irit.save( "macros8", irit.list( v, irit.tx( 1 ) * \ irit.ty( 1 ) * \ irit.tz( 1 ) * \ irit.sx( 2 ) * \ irit.sy( 2 ) * \ irit.sz( 3 ) * \ irit.sc( 3 ) * \ irit.rx( 10 ) * \ irit.ry( 20 ) * \ irit.rz( (-30 ) ), irit.rotz2vec( v ) * w, irit.rotz2vec( irit.vector( 1, 0, 0 ) ), irit.rotz2vec( irit.vector( 0, 1, 0 ) ), irit.rotz2vec( irit.vector( 0, 0, 1 ) ), irit.rotvec2z( v ), w, a1, a2, a3 ) ) irit.free(v) irit.free(w) irit.free(a1)
irit.save("cbisect2a", irit.list(c1, c2, bisectcrv, bisectsrf)) # ############################################################################ # # A line and a (approximation of a) circle. # c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, 0, (-1 ) ), \ irit.ctlpt( irit.E2, 0, 1 ) ) ) c2 = irit.coerce( irit.creparam( irit.pcircle( ( 0, 0, 0 ), 1 ), 0, 1 ),\ irit.E2 ) irit.color(c1, irit.YELLOW) irit.color(c2, irit.YELLOW) irit.adwidth(c1, 3) irit.adwidth(c2, 3) bisectsrf = irit.cbisector3d(irit.list(c1, c2), 4) * irit.sz(0.1) irit.color(bisectsrf, irit.RED) irit.SetResolution(150) bisectcrv = irit.contour(bisectsrf, irit.plane(0, 0, 1, epsilon)) irit.color(bisectcrv, irit.GREEN) irit.adwidth(bisectcrv, 3) irit.interact(irit.list(c1, c2, bisectcrv, bisectsrf)) irit.save("cbisect2b", irit.list(c1, c2, bisectcrv, bisectsrf)) # ############################################################################ # # Two cubic curves # c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, (-0.8 ), 0.4 ), \
irit.free(sad2) # ############################################################################ cnvx1 = irit.sbezier( irit.list( irit.list( irit.ctlpt( irit.E3, 0, 0, 0.1 ), \ irit.ctlpt( irit.E3, 0.5, 0.1, 0.5 ), \ irit.ctlpt( irit.E3, 1, 0.05, 0 ) ), irit.list( \ irit.ctlpt( irit.E3, 0, 0.5, 0.4 ), \ irit.ctlpt( irit.E3, 0.6, 0.5, 0.8 ), \ irit.ctlpt( irit.E3, 0.9, 0.6, 0.3 ) ), irit.list( \ irit.ctlpt( irit.E3, 0, 0.9, 0.1 ), \ irit.ctlpt( irit.E3, 0.4, 1, 0.5 ), \ irit.ctlpt( irit.E3, 1, 0.95, 0 ) ) ) ) * irit.sz( 2 ) cnvx2a = irit.offset(cnvx1, irit.GenRealObject(0.3), 1, 0) cnvx2b = irit.offset(cnvx1, irit.GenRealObject(0.16), 1, 0) irit.save( "dist2ff7", irit.list(testssdistfunc(cnvx1, cnvx2a, irit.nil()), testssdistfunc(cnvx1, cnvx2a, irit.list(0.5)), testssdistfunc(cnvx1, cnvx2b, irit.nil()), testssdistfunc(cnvx1, cnvx2b, irit.list(0.5)), testssdistfunc(cnvx1, cnvx2b, irit.list(1.0 / 3.0, 2.0 / 3.0)))) irit.free(cnvx1) irit.free(cnvx2a) irit.free(cnvx2b) # ############################################################################
# sqrt2 = math.sqrt(2) eps = 0.015 rad = 0.3 len = (rad + eps) * 2 itemaux1 = irit.box( ((-rad) / sqrt2, (-rad) / sqrt2, (-len)), rad * 2 / sqrt2, rad * 2 / sqrt2, len * 2) * irit.rz(45) itemaux2 = ( itemaux1 * irit.tx(rad) - itemaux1 * irit.rotx(90) * irit.tz(rad + eps) - itemaux1 * irit.rotx(90) * irit.tz((-rad) - eps)) * irit.tx(eps / 2) diag = (len + eps) diagpoly = irit.poly( irit.list((diag, diag, 0), ((-diag), diag, 0), ((-diag), 0, diag), (diag, 0, diag)), irit.FALSE) item1 = (itemaux2 - diagpoly - diagpoly * irit.sy((-1)) - diagpoly * irit.sz( (-1)) - diagpoly * irit.sz((-1)) * irit.sy((-1))) item1 = irit.convex(item1) irit.color(item1, irit.RED) item2 = item1 * irit.sx((-1)) irit.color(item2, irit.MAGENTA) item3 = item1 * irit.rx(90) * irit.rz(90) irit.color(item3, irit.GREEN) item4 = item1 * irit.rx(90) * irit.rz((-90)) irit.color(item4, irit.YELLOW) item5 = item1 * irit.rx(90) * irit.ry(90) irit.color(item5, irit.BLUE)
irit.viewstate( "polyaprx", 1 ) irit.viewstate( "polyaprx", 1 ) irit.viewstate( "drawstyle", 1 ) irit.viewstate( "depthcue", 0 ) irit.viewstate( "dsrfpoly", 1 ) # ############################################################################ # # Polygons: # # ############################################################################ pl = irit.poly( irit.list( ( 1, 0, 0 ), ( 0, (-0.8 ), 0 ), irit.point( (-0.5 ), 0, 0 ) ), irit.FALSE ) ppl = plgntoplln( pl ) irit.interact( irit.list( irit.GetAxes(), ppl, gammakernelpolysrfs( pl, 25, 2 ) * irit.sz( (-1 ) ) ) ) angle = 18 while ( angle < 19.4 ): irit.printf( "angle = %.2f\n", irit.list( angle ) ) irit.view( irit.list( ppl, gammakernelpolysrfs( pl, angle, 2 ) * irit.sz( (-1 ) ) ), irit.ON ) angle = angle + 0.1 irit.pause( ) # ############################################################################ pl = irit.poly( irit.list( ( 0.9, 0, 0 ), ( 0, (-0.9 ), 0 ), irit.point( (-0.8 ), 0, 0 ), irit.point( (-0.5 ), 0, 0 ), irit.point( 0, 1, 0 ), irit.point( 0.5, 0, 0 ) ), irit.FALSE ) ppl = plgntoplln( pl ) irit.interact( irit.list( irit.GetAxes(), ppl, gammakernelpolysrfs( pl, 25, 2 ) * irit.sz( (-1 ) ) ) )
irit.ctlpt( irit.E2, 1, 0 ) + \ irit.ctlpt( irit.E2, 1, 1 ) ) srftext1 = irit.sraise(irit.sraise(srftext1, irit.ROW, 3), irit.COL, 3) srftext1 = irit.srefine(srftext1, irit.ROW, 0, irit.list(0.25, 0.5, 0.75)) srftext1 = irit.srefine(srftext1, irit.COL, 0, irit.list(0.25, 0.5, 0.75)) srftext1 = irit.coerce(srftext1, irit.E3) # Make a spike out of the four interior points. srftext1 = irit.seditpt(srftext1, irit.ctlpt(irit.E3, 0.5, 0.5, 1), 2, 2) srftext1 = irit.seditpt(srftext1, irit.ctlpt(irit.E3, 0.5, 0.5, 1), 2, 3) srftext1 = irit.seditpt(srftext1, irit.ctlpt(irit.E3, 0.5, 0.5, 1), 3, 2) srftext1 = irit.seditpt(srftext1, irit.ctlpt(irit.E3, 0.5, 0.5, 1), 3, 3) irit.SetResolution(6) srf1 = irit.sddmmap(srf, irit.gpolygon((-srftext1) * irit.sz(0.1), 1), 4, 8, 1) irit.interact(srf1) srf1 = irit.sddmmap(srf, irit.gpolygon((-srftext1) * irit.sz(0.2), 1), 8, 12, 1) irit.interact(srf1) irit.save("disp1map", srf1) irit.free(srftext1) irit.free(srf1) # ############################################################################# # # Scale like texture #