def antantenna(): c = irit.pcircle((0, 0, 0), 0.03) * irit.ry(90) retval = (-irit.sfromcrvs( irit.list( c * irit.sy(1.4) * irit.rz(45) * irit.tx(0.1) * irit.ty((-0.15)), c * irit.rz(45) * irit.tx(0.2) * irit.ty(0.2), c * irit.sy(1.4) * irit.tx(0.3) * irit.ty(0.4), c * irit.rz((-55)) * irit.tx(0.4) * irit.ty(0.15), c * irit.sc(0.8) * irit.rz((-45)) * irit.tx(0.5) * irit.ty((-0.1)), c * irit.sc(0.65) * irit.rz((-45)) * irit.tx(0.58) * irit.ty( (-0.22)), c * irit.sc(0.001) * irit.rz((-45)) * irit.tx(0.58) * irit.ty( (-0.22))), 3, irit.KV_OPEN)) irit.attrib(retval, "rgb", irit.GenStrObject("255,50,50")) return retval
base1 = irit.box((0, 0, 0), 1 - h, h, h) irit.color(base1, irit.RED) base2 = irit.box((1 - h, 0, 0), h, 1 - h, h) irit.color(base2, irit.GREEN) sqr = ( irit.ctlpt( irit.E2, 0, 0 ) + \ irit.ctlpt( irit.E2, 0, h ) + \ irit.ctlpt( irit.E2, h, h ) + \ irit.ctlpt( irit.E2, h, 0 ) + \ irit.ctlpt( irit.E2, 0, 0 ) ) base3a = (-irit.sfromcrvs( irit.list( sqr * irit.tz(h), sqr * irit.rz(45) * irit.sy(1.5) * irit.rx((-55)) * irit.rz( (-45)) * irit.tz(0.4 + h), sqr * irit.rz(45) * irit.sy(1.5) * irit.rx((-55)) * irit.rz( (-45)) * irit.tx(1 - h) * irit.ty(1 - h) * irit.tz((-0.3) + h), sqr * irit.tx(1 - h) * irit.ty(1 - h), sqr * irit.tx(1 - h) * irit.ty(1 - h) * irit.tz(h)), 3, irit.KV_OPEN)) base3b = irit.ruledsrf( irit.ctlpt( irit.E2, 0, 0 ) + \ irit.ctlpt( irit.E2, 0, h ), \ irit.ctlpt( irit.E2, h, 0 ) + \ irit.ctlpt( irit.E2, h, h ) ) * irit.tx( 1 - h ) * irit.ty( 1 - h ) * irit.tz( h ) base3 = irit.list(base3a, base3b) irit.color(base3, irit.BLUE) view_mat_tri = irit.GetViewMatrix() * irit.rx(145) * irit.ry(180) * irit.rx( 34) * irit.rz((-29)) * irit.ty(0.5) * irit.sc(1.5) irit.interact(irit.list(base1, base2, base3, view_mat_tri))
irit.ctlpt( irit.E2, 0.5, 0 ) ), irit.list( irit.KV_OPEN ) ), 0, 2 ) crv2 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, (-0.5 ), 0, 0 ), \ irit.ctlpt( irit.E3, (-0.4 ), 0.3, 0 ), \ irit.ctlpt( irit.E3, (-0.3 ), 0.4, 0 ), \ irit.ctlpt( irit.E3, (-0.07 ), 0.46, 0 ), \ irit.ctlpt( irit.E3, 0, 0.75, 0 ), \ irit.ctlpt( irit.E3, 0.07, 0.46, 0 ), \ irit.ctlpt( irit.E3, 0.3, 0.4, 0 ), \ irit.ctlpt( irit.E3, 0.4, 0.3, 0 ), \ irit.ctlpt( irit.E3, 0.5, 0, 0 ) ), irit.list( 0, 0, 0, 0, 0.8, 0.85,\ 1, 1.15, 1.2, 2, 2, 2,\ 2 ) ) srf = irit.sfromcrvs( irit.list(crv2, crv2 * irit.tz(0.02), crv * irit.sc(0.96) * irit.tz(0.2), crv * irit.sc(0.87) * irit.tz(0.35), crv * irit.sc(0.7) * irit.tz(0.5)), 3, irit.KV_OPEN) irit.free(crv) irit.free(crv2) tcrvs1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.3, 1.4 ), \ irit.ctlpt( irit.E2, 0.7, 1.4 ), \ irit.ctlpt( irit.E2, 0.7, 2.2 ), \ irit.ctlpt( irit.E2, 0.3, 2.2 ) ), irit.list( irit.KV_PERIODIC ) ) tcrvs2 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 1.3, 1.4 ), \ irit.ctlpt( irit.E2, 1.7, 1.4 ), \ irit.ctlpt( irit.E2, 1.7, 2.2 ), \ irit.ctlpt( irit.E2, 1.3, 2.2 ) ), irit.list( irit.KV_PERIODIC ) ) tcrvs3 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0, 0 ), \ irit.ctlpt( irit.E2, 1, 0 ), \
irit.pause() # ############################################################################ cross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0, 0 ), \ irit.ctlpt( irit.E2, 0.8, 0 ), \ irit.ctlpt( irit.E2, 0.8, 0.2 ), \ irit.ctlpt( irit.E2, 0.07, 1.4 ), \ irit.ctlpt( irit.E2, (-0.07 ), 1.4 ), \ irit.ctlpt( irit.E2, (-0.8 ), 0.2 ), \ irit.ctlpt( irit.E2, (-0.8 ), 0 ), \ irit.ctlpt( irit.E2, 0, 0 ) ), irit.list( irit.KV_OPEN ) ) cross = irit.coerce(cross, irit.E3) s = irit.sfromcrvs( irit.list(cross, cross * irit.trans((0.5, 0, 1)), cross * irit.trans((0, 0, 2))), 3, irit.KV_OPEN) irit.view(irit.list(s, irit.GetAxes()), irit.ON) ucrvtrzxy = irit.scrvtr(s, irit.E3, irit.ROW) vcrvtrzxy = irit.scrvtr(s, irit.E3, irit.COL) ucrvtrxyz = ucrvtrzxy * irit.rotx((-90)) * irit.roty((-90)) * irit.scale( (1, 1, 10)) vcrvtrxyz = vcrvtrzxy * irit.rotx((-90)) * irit.roty((-90)) * irit.scale( (1, 1, 0.001)) irit.free(ucrvtrzxy) irit.free(vcrvtrzxy) irit.color(ucrvtrxyz, irit.RED) irit.color(vcrvtrxyz, irit.MAGENTA) irit.view(irit.list(ucrvtrxyz, vcrvtrxyz), irit.OFF)
irit.ctlpt( irit.E3, 0.3, 0.05, 0.2 ) ) ) ) * irit.sc( 8 ) * irit.tx( (-1 ) ) * irit.ty( 1 ) * irit.tz( (-0.65 ) ) d = irit.duality(s) irit.color(d, irit.YELLOW) view_mat1 = irit.GetViewMatrix() * irit.sc(0.3) * irit.ty( (-0.2)) * irit.tx(0.4) irit.interact(irit.list(s, d, irit.GetAxes(), view_mat1)) # # A closed surface # c = irit.pcircle((0, 0, 0), 1) s = (-irit.sfromcrvs( irit.list(c * irit.sc(0.001) * irit.tz((-1)), c * irit.sc(0.4) * irit.sy(0.2) * irit.tz((-1)), c * irit.sc(0.4) * irit.sy(0.2), c * irit.sc(1), c * irit.sc(1) * irit.tz(1), c * irit.sc(0.4) * irit.sx(0.2) * irit.tz(1), c * irit.sc(0.4) * irit.sx(0.2) * irit.tz(2), c * irit.sc(0.001) * irit.tz(2)), 4, irit.KV_OPEN)) * irit.tz( (-0.5)) * irit.sc(0.3) d = irit.duality(s) * irit.sc(0.05) irit.color(d, irit.YELLOW) all = irit.list(s * irit.tx(1), d * irit.tx((-1)), irit.GetAxes(), irit.GetViewMatrix()) irit.interact(all) irit.save("duality2", all) irit.free(all)
# rsquare = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-1 ), 0.8, 0 ), \ irit.ctlpt( irit.E3, (-0.8 ), 1, 0 ), \ irit.ctlpt( irit.E3, 0.8, 1, 0 ), \ irit.ctlpt( irit.E3, 1, 0.8, 0 ), \ irit.ctlpt( irit.E3, 1, (-0.8 ), 0 ), \ irit.ctlpt( irit.E3, 0.8, (-1 ), 0 ), \ irit.ctlpt( irit.E3, (-0.8 ), (-1 ), 0 ), \ irit.ctlpt( irit.E3, (-1 ), (-0.8 ), 0 ) ), irit.list( irit.KV_PERIODIC ) ) rsquare = irit.coerce(rsquare, irit.KV_OPEN) cuboid = irit.sfromcrvs( irit.list(rsquare * irit.sc(0.002) * irit.tz((-1)), rsquare * irit.sc(0.8) * irit.tz((-1)), rsquare * irit.sc(1) * irit.tz((-0.8)), rsquare * irit.sc(1) * irit.tz(0.8), rsquare * irit.sc(0.8) * irit.tz(1), rsquare * irit.sc(0.002) * irit.tz(1)), 3, irit.KV_OPEN) checksrf = psphere * irit.tz((-1)) pts = irit.saccess(cuboid, irit.GenRealObject(0), checksrf, irit.GenRealObject(0), 0.1, 1e-005) spts = irit.nil() sptserr = irit.nil() i = 1 while (i <= irit.SizeOf(pts)): pt = irit.nth(pts, i) err = irit.FetchRealObject(irit.getattr(pt, "rngerror")) if (err > 1e-005):
base = (base + topround) # # Top round control. # button = irit.coerce( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \ irit.ctlpt( irit.E3, 2, 0, 0 ), \ irit.ctlpt( irit.E3, 3, 0, 0 ), \ irit.ctlpt( irit.E3, 3, 1.4, 0 ), \ irit.ctlpt( irit.E3, 2, 1.4, 0 ), \ irit.ctlpt( irit.E3, 0, 1.4, 0 ), \ irit.ctlpt( irit.E3, (-1 ), 1.4, 0 ), \ irit.ctlpt( irit.E3, (-1 ), 0, 0 ) ), irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ) * irit.tx( (-1 ) ) * irit.ty( (-0.7 ) ) button = irit.sfromcrvs( irit.list(button * irit.tz((-1)), button, button * irit.tz(0.6), button * irit.sx(0.7) * irit.sy(0.001) * irit.tz(0.6)), 3, irit.KV_OPEN) * irit.sc(0.1) irit.attrib(button, "rgb", irit.GenStrObject("155,155,155")) redbutton = irit.cylin((0, 0, 0), (0, 0, 0.1), 0.1, 3) irit.attrib(redbutton, "rgb", irit.GenStrObject("255,0,0")) greenbutton = irit.cylin((0, 0, 0), (0, 0, 0.1), 0.075, 3) irit.attrib(greenbutton, "rgb", irit.GenStrObject("0,255,0")) buttons = irit.list( button * irit.rx(8) * irit.ty((-0.5)) * irit.tx(0.3) * irit.tz(7.55), button * irit.rx(8) * irit.ty((-0.5)) * irit.tx(0.75) * irit.tz(7.55), button * irit.rx(8) * irit.ty((-0.5)) * irit.tx(1.25) * irit.tz(7.55), button * irit.rx(8) * irit.ty((-0.5)) * irit.tx(1.7) * irit.tz(7.55), redbutton * irit.rx(8) * irit.tx(0.2) * irit.tz(7.55),
irit.blossom(c1, irit.list(5, 5)) == irit.coord(c1, 6), irit.blossom(c1, irit.list(0, 1)) == irit.blossom(c1, irit.list(1, 0)), irit.blossom(c1, irit.list(1, 2)) == irit.blossom(c1, irit.list(2, 1)), irit.blossom(c1, irit.list(2, 3)) == irit.blossom(c1, irit.list(3, 2)), irit.blossom(c1, irit.list(4, 5)) == irit.blossom(c1, irit.list(5, 4)), irit.blossom(c1, irit.list(0.5, 0.5)) == irit.ceval(c1, 0.5), irit.blossom(c1, irit.list(0.1, 0.1)) == irit.ceval(c1, 0.1), irit.blossom(c1, irit.list(1.7, 1.7)) == irit.ceval(c1, 1.7), irit.blossom(c1, irit.list(2.3, 2.3)) == irit.ceval(c1, 2.3), irit.blossom(c1, irit.list(3.2, 3.2)) == irit.ceval(c1, 3.2), irit.blossom(c1, irit.list(4.7, 4.7)) == irit.ceval(c1, 4.7))) # ############################################################################ s1 = irit.sfromcrvs( irit.list(c1, c1 * irit.tz(0.5) * irit.ty(0.2), c1 * irit.tz(1)), 3, irit.KV_OPEN) printtest( "bspline srf test - ", "%40s %d %d %d %d %d %d %d, %d %d %d, %d %d %d %d %d\n", irit.list( irit.blossom(s1, irit.list(irit.list(0, 0), irit.list(0, 0))) == irit.coord(s1, 0), irit.blossom(s1, irit.list(irit.list(0, 1), irit.list(0, 0))) == irit.coord(s1, 1), irit.blossom(s1, irit.list(irit.list(1, 2), irit.list(0, 0))) == irit.coord(s1, 2), irit.blossom(s1, irit.list(irit.list(5, 5), irit.list(0, 0))) == irit.coord(s1, 6), irit.blossom(s1, irit.list(irit.list(0, 0),
boardbaseaux = irit.sfromcrvs( irit.list( irit.ctlpt( irit.E3, 1, 1, 0 ) + \ irit.ctlpt( irit.E3, 1, 9, 0 ) + \ irit.ctlpt( irit.E3, 9, 9, 0 ) + \ irit.ctlpt( irit.E3, 9, 1, 0 ) + \ irit.ctlpt( irit.E3, 1, 1, 0 ), \ irit.ctlpt( irit.E3, 0.5, 0.5, 0 ) + \ irit.ctlpt( irit.E3, 0.5, 9.5, 0 ) + \ irit.ctlpt( irit.E3, 9.5, 9.5, 0 ) + \ irit.ctlpt( irit.E3, 9.5, 0.5, 0 ) + \ irit.ctlpt( irit.E3, 0.5, 0.5, 0 ), \ irit.ctlpt( irit.E3, 0.5, 0.5, (-0.5 ) ) + \ irit.ctlpt( irit.E3, 0.5, 9.5, (-0.5 ) ) + \ irit.ctlpt( irit.E3, 9.5, 9.5, (-0.5 ) ) + \ irit.ctlpt( irit.E3, 9.5, 0.5, (-0.5 ) ) + \ irit.ctlpt( irit.E3, 0.5, 0.5, (-0.5 ) ), \ irit.ctlpt( irit.E3, 0, 0, (-0.5 ) ) + \ irit.ctlpt( irit.E3, 0, 10, (-0.5 ) ) + \ irit.ctlpt( irit.E3, 10, 10, (-0.5 ) ) + \ irit.ctlpt( irit.E3, 10, 0, (-0.5 ) ) + \ irit.ctlpt( irit.E3, 0, 0, (-0.5 ) ), \ irit.ctlpt( irit.E3, 0, 0, (-0.7 ) ) + \ irit.ctlpt( irit.E3, 0, 10, (-0.7 ) ) + \ irit.ctlpt( irit.E3, 10, 10, (-0.7 ) ) + \ irit.ctlpt( irit.E3, 10, 0, (-0.7 ) ) + \ irit.ctlpt( irit.E3, 0, 0, (-0.7 ) ) ), 3, irit.KV_OPEN ) boardbase = irit.list(irit.sregion(boardbaseaux, irit.COL, 0, 1), irit.sregion(boardbaseaux, irit.COL, 1, 2), irit.sregion(boardbaseaux, irit.COL, 2, 3),
irit.ctlpt( irit.E2, 1.8, width - 0.2 ), \ irit.ctlpt( irit.E2, 2, width - 0.2 ) ), irit.list( irit.KV_OPEN ) ) threads = irit.nil() i = 0 shift = 0.42 s = (-shift) while (s <= shift * 0.12): irit.snoc( ( irit.ctlpt( irit.E2, (-0.01 ), width ) + thread * irit.tx( (-s ) ) + \ irit.ctlpt( irit.E2, 2.41, width - 0.2 ) + \ irit.ctlpt( irit.E2, 2.55, width * 0.55 ) + \ irit.ctlpt( irit.E2, 2.85, width * 0.35 ) + \ irit.ctlpt( irit.E2, 2.86, width * 0.001 ) ) * irit.rx( 45 * i ), threads ) i = i + 1 s = s + shift * 0.12 base = (-irit.sfromcrvs(threads, 3, irit.KV_FLOAT)) irit.attrib(base, "rgb", irit.GenStrObject("200,200,200")) coverglasscross = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0, width ), \ irit.ctlpt( irit.E2, (-0.2 ), width + 0.2 ), \ irit.ctlpt( irit.E2, (-0.8 ), width + 0.2 ), \ irit.ctlpt( irit.E2, (-1.4 ), width + 0.5 ), \ irit.ctlpt( irit.E2, (-1.6 ), width + 0.7 ), \ irit.ctlpt( irit.E2, (-2.6 ), width + 1.4 ), \ irit.ctlpt( irit.E2, (-4.9 ), width + 1.2 ), \ irit.ctlpt( irit.E2, (-5.7 ), width ), \ irit.ctlpt( irit.E2, (-5.7 ), 0.001 ) ), irit.list( irit.KV_OPEN ) ) * irit.ry( 90 ) coverglass = irit.surfrev(coverglasscross) * irit.ry((-90))
irit.ctlpt( irit.E3, 0.3, 0, 0.05 ), \ irit.ctlpt( irit.E3, 0, 0, 0 ) ), irit.list( irit.KV_OPEN ) ) chairbasecross = ( irit.arc( ( 0.25, 0.05, 0 ), ( 0.25, 0, 0 ), ( 0.3, 0, 0 ) ) + \ irit.arc( ( 0.3, 0, 0 ), ( 0.25, 0, 0 ), ( 0.25, (-0.05 ), 0 ) ) + \ irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.25, (-0.05 ), 0 ), \ irit.ctlpt( irit.E3, 0.22, (-0.05 ), 0 ), \ irit.ctlpt( irit.E3, 0, 0, 0 ), \ irit.ctlpt( irit.E3, (-0.22 ), (-0.05 ), 0 ), \ irit.ctlpt( irit.E3, (-0.25 ), (-0.05 ), 0 ) ), irit.list( irit.KV_OPEN ) ) + irit.arc( ( (-0.25 ), (-0.05 ), 0 ), ( (-0.25 ), 0, 0 ), ( (-0.3 ), 0, 0 ) ) + irit.arc( ( (-0.3 ), 0, 0 ), ( (-0.25 ), 0, 0 ), ( (-0.25 ), 0.05, 0 ) ) + \ irit.ctlpt( irit.E3, 0.25, 0.05, 0 ) ) chairbasemain = (-irit.sweepsrf( chairbasecross * irit.rotz( 90 ), chairbasecrv, irit.GenRealObject(0) ) ) chaircrv1 = irit.cmesh( chairbasemain, irit.ROW, 0 ) chaircrv1a = chaircrv1 * irit.trans( ( 0.06, 0, (-0.02 ) ) ) chaircrv1b = chaircrv1 * irit.scale( ( 0, 0.83, 0 ) ) * irit.trans( ( 0.66, 0, (-0.02 ) ) ) chairbasecover1 = (-irit.sfromcrvs( irit.list( chaircrv1, chaircrv1a, chaircrv1b ), 3, irit.KV_OPEN ) ) irit.free( chaircrv1 ) irit.free( chaircrv1a ) irit.free( chaircrv1b ) irit.free( chairbasecrv ) chaircrv2 = irit.cmesh( chairbasemain, irit.ROW, 2 ) chaircrv2a = chaircrv2 * irit.trans( ( (-0.06 ), 0, (-0.02 ) ) ) chaircrv2b = chaircrv2 * irit.scale( ( 0, 0.83, 0 ) ) * irit.trans( ( (-0.06 ), 0, (-0.02 ) ) ) chairbasecover2 = irit.sfromcrvs( irit.list( chaircrv2, chaircrv2a, chaircrv2b ), 3, irit.KV_OPEN ) irit.free( chaircrv2 ) irit.free( chaircrv2a ) irit.free( chaircrv2b ) chairbase = irit.list( chairbasemain, chairbasecover1, chairbasecover2 ) * irit.scale( ( 0.75, 1, 1 ) ) irit.color( chairbase, irit.YELLOW )
irit.ctlpt( irit.E2, (-0.45 ), (-0.21 ) ), \ irit.ctlpt( irit.E2, (-0.45 ), 0.32 ), \ irit.ctlpt( irit.E3, 0.5, (-0 ), 0.2 ), \ irit.ctlpt( irit.E3, 0.8, 0.28, 0.3 ) ), irit.list( irit.KV_OPEN ) ) s = irit.sregion(irit.sweepsrf(c1 * irit.sc(0.1), c2, irit.GenRealObject(0)), irit.COL, 0, 0.5) drawbitangencies( irit.list( s, s ), (-1 ), 0.125, (-1e-006 ), 0.1,\ 1, "srf1tan" ) # ############################################################################ c2 = c1 * irit.sy(0.5) s = irit.sfromcrvs( irit.list(c2 * irit.sc(0.001), c2, c2 * irit.tz(1), 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)
irit.point(math.cos(i * 2 * math.pi / 8), math.sin(i * 2 * math.pi / 8), 0), ptlist) i = i + 1 circ = irit.coerce(irit.cbspline(3, ptlist, irit.list(irit.KV_PERIODIC)), irit.KV_OPEN) * irit.rz((-22.5)) * irit.sc(1 / 0.93) irit.free(ptlist) c1 = circ * irit.rx(90) * irit.sc(1.5) c2 = circ * irit.rx(90) * irit.sc(1.6) * irit.ty(0.1) c3 = circ * irit.rx(90) * irit.sc(2.1) * irit.ty(0.5) c4 = circ * irit.rx(90) * irit.sc(1.9) * irit.ty(1.4) c5 = circ * irit.rx(90) * irit.sc(1.5) * irit.ty(2.3) c6 = circ * irit.rx(90) * irit.sc(1.4) * irit.ty(2.4) c7 = circ * irit.rx(90) * irit.sc(1.4) * irit.ty(2.3) body2 = (-irit.sfromcrvs( irit.list( c1, c2, c3, c4, c5, c6,\ c7 ), 4, irit.KV_OPEN ) ) minscale = 0.01 c1 = circ * irit.rx(90) * irit.sc(1.3) * irit.ty(2.25) c2 = circ * irit.rx(90) * irit.sc(1.3) * irit.ty(2.35) c3 = circ * irit.rx(90) * irit.sc(0.18) * irit.ty(2.5) c4 = circ * irit.rx(90) * irit.sc(0.15) * irit.ty(2.67) c5 = circ * irit.rx(90) * irit.sc(0.4) * irit.ty(2.9) c6 = circ * irit.rx(90) * irit.sc(0.3) * irit.ty(3) c7 = circ * irit.rx(90) * irit.sc(minscale) * irit.ty(3) cap2 = (-irit.sfromcrvs( irit.list( c1, c2, c3, c4, c5, c6,\ c7 ), 3, irit.KV_OPEN ) ) circ2 = circ * irit.sc(0.25) * irit.sy(0.5) * irit.ry(90) c0 = circ2 * irit.rz((-25)) * irit.sc(2) * irit.ty(2) * irit.tx((-1.53)) c1 = circ2 * irit.rz((-24)) * irit.ty(2) * irit.tx((-1.6))
2, 3, 3, 4, 4, 4 ) ) * irit.trans( ( 0, 0, 0 ) ) irit.color(c1, irit.RED) c2 = c1 * irit.scale((1.05, 1.05, 1.05)) * irit.trans((0.3, 0, 0)) irit.color(c2, irit.RED) c3 = c1 * irit.scale((0.95, 0.95, 0.95)) * irit.trans((1.7, 0, (-0.02))) irit.color(c3, irit.RED) c4 = irit.circle((0, 0, 0), 0.35) * irit.roty(90) * irit.trans((5, 0, 0.2)) irit.color(c4, irit.RED) c5 = c4 * irit.trans((0.2, 0, 0)) irit.color(c5, irit.RED) c6 = irit.circle((0, 0, 0), 0.3) * irit.roty(90) * irit.trans((10.5, 0, 0.2)) irit.color(c6, irit.RED) c7 = irit.circle((0, 0, 0), 0.01) * irit.roty(90) * irit.trans((11, 0, 0.25)) irit.color(c7, irit.RED) fuseback = irit.sfromcrvs( irit.list( c1, c2, c3, c4, c5, c6,\ c7 ), 3, irit.KV_OPEN ) irit.color(fuseback, irit.RED) irit.SetViewMatrix( irit.rotx((-90)) * irit.trans(((-3), 0, 0)) * irit.scale((0.5, 0.5, 0.5))) fuseparamspace = irit.poly( irit.list(irit.point(0, 0, 0), irit.point(4, 0, 0), irit.point(4, 5, 0), irit.point(0, 5, 0), irit.point(0, 0, 0)), 1) irit.color(fuseparamspace, irit.YELLOW) pt1 = (2.7, 5, (-0.05)) pt2 = (4, 5, (-0.05)) pt3 = (4, 5, 0.7) pt4 = (2.7, 5, 0.7) dir = (0, (-1), 0)
def snaket( t ): p = irit.point( 0, 0, 0 ) ct = irit.cbspline( 3, irit.list( p * \ ctx( 0 + t, 1.5 ) * \ irit.ty( 0.22 ), p * \ ctx( 0 + t, 1.5 ) * \ irit.ty( 0.22 ), p * \ ctx( 0.3 + t, 1.5 ) * \ irit.ty( 0.17 ) * \ irit.tz( 0.3 ), p * \ ctx( 2 + t, 1.5 ) * \ irit.ty( (-0.06 ) ) * \ irit.tz( 2 ), p * \ ctx( 4 + t, 1.5 ) * \ irit.ty( (-0.06 ) ) * \ irit.tz( 4 ), p * \ ctx( 6 + t, 1.5 ) * \ irit.ty( (-0.06 ) ) * \ irit.tz( 6 ), p * \ ctx( 8 + t, 2.5 ) * \ irit.ty( (-0.065 ) ) * \ irit.tz( 8 ), p * \ ctx( 10 + t, 2.5 ) * \ irit.ty( (-0.07 ) ) * \ irit.tz( 10 ), p * \ ctx( 12 + t, 2.5 ) * \ irit.ty( (-0.075 ) ) * \ irit.tz( 12 ), p * \ ctx( 14 + t, 1.5 ) * \ irit.ty( (-0.08 ) ) * \ irit.tz( 14 ), p * \ ctx( 16 + t, 1.5 ) * \ irit.ty( (-0.09 ) ) * \ irit.tz( 16 ), p * \ ctx( 18 + t, 1.5 ) * irit.ty( (-0.1 ) ) * irit.tz( 18 ), p * \ irit.ty( (-0.1 ) ) * \ irit.tz( 20 ), p * \ irit.ty( (-0.1 ) ) * \ irit.tz( 21 ) ), irit.list( irit.KV_OPEN ) ) c = irit.circle( ( 0, 0, 0 ), 0.36 ) * irit.rz( (-90 ) ) scalecrv = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0, 0.001 ), \ irit.ctlpt( irit.E2, 0.1, 0.1 ), \ irit.ctlpt( irit.E2, 0.2, 0.4 ), \ irit.ctlpt( irit.E2, 0.3, 0.7 ), \ irit.ctlpt( irit.E2, 0.4, 0.8 ), \ irit.ctlpt( irit.E2, 0.5, 0.9 ), \ irit.ctlpt( irit.E2, 0.6, 0.95 ), \ irit.ctlpt( irit.E2, 0.7, 1 ), \ irit.ctlpt( irit.E2, 0.8, 1 ) ), irit.list( irit.KV_OPEN ) ) s1 = irit.swpsclsrf( c, ct, scalecrv, irit.vector( 0, 1, 0 ), 1 ) irit.attrib( s1, "ptexture", irit.GenStrObject("snake2.gif,1,30" )) s2 = irit.sfromcrvs( irit.list( c * \ irit.ty( (-0.1 ) ) * \ irit.tz( 21 ), c * \ irit.ty( (-0.1 ) ) * \ irit.tz( 22 ), c * \ irit.ty( (-0.14 ) ) * \ irit.sx( 2.2 ) * \ irit.sy( 1.2 ) * \ irit.tz( 23 ), c * \ irit.ty( (-0.14 ) ) * \ irit.sx( 2.2 ) * \ irit.sy( 1.2 ) * \ irit.tz( 24 ), c * \ irit.sy( 0.9 ) * \ irit.ty( (-0.1 ) ) * \ irit.sx( 1.2 ) * \ irit.tz( 25 ), c * \ irit.ty( (-0.1 ) ) * \ irit.sc( 0.001 ) * \ irit.tz( 25 ) ), 3, irit.KV_OPEN ) irit.attrib( s2, "ptexture", irit.GenStrObject("snake2.gif,1,5" )) eyes = irit.list( irit.sphere( ( 0.42, (-0.35 ), 24.5 ), 0.1 ), irit.sphere( ( (-0.42 ), (-0.35 ), 24.5 ), 0.1 ) ) irit.color( eyes, irit.BLACK ) retval = irit.list( s1, s2, eyes ) * irit.rx( (-90 ) ) * irit.tz( 0.261 ) return retval
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
bisect = irit.sbisector(s, irit.Fetch3TupleObject(pt)) irit.color(bisect, irit.CYAN) irit.save("sbisect2", irit.list(s, pt, bisect)) irit.interact(irit.list(s, pt, bisect)) # ############################################################################ # # A quadratic surface # s2 = irit.sfromcrvs( irit.list( irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-1 ), (-1 ), 0 ), \ irit.ctlpt( irit.E3, (-1 ), 0, 0.1 ), \ irit.ctlpt( irit.E3, (-1 ), 1, 0 ) ) ), irit.cbezier( irit.list( \ irit.ctlpt( irit.E3, 0, (-1 ), 0.1 ), \ irit.ctlpt( irit.E3, 0, 0, (-0.8 ) ), \ irit.ctlpt( irit.E3, 0, 1, 0.1 ) ) ), irit.cbezier( irit.list( \ irit.ctlpt( irit.E3, 1, (-1 ), 0 ), \ irit.ctlpt( irit.E3, 1, 0, 0.1 ), \ irit.ctlpt( irit.E3, 1, 1, 0 ) ) ) ), 3, irit.KV_OPEN ) irit.color(s2, irit.RED) pt = irit.point(0, 0, 1) irit.adwidth(pt, 3) irit.color(pt, irit.YELLOW) bisect = irit.sbisector(s2, irit.Fetch3TupleObject(pt)) irit.color(bisect, irit.CYAN) irit.save("sbisect3", irit.list(s2, pt, bisect)) irit.interact(irit.list(s2, pt, bisect))
irit.ctlpt( irit.E3, 4.2, 0.4, 0.2 ), \ irit.ctlpt( irit.E3, 4.2, 0.34, 0.65 ), \ irit.ctlpt( irit.E3, 4.2, 0.3, 0.65 ), \ irit.ctlpt( irit.E3, 4.2, 0, 0.65 ) ), irit.list( irit.KV_OPEN ) ) crosssection5 = makecrosssection(c5) c6 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 5.5, 0, 0 ), \ irit.ctlpt( irit.E3, 5.5, 0.3, 0 ), \ irit.ctlpt( irit.E3, 5.5, 0.8, 0.05 ), \ irit.ctlpt( irit.E3, 5.5, 0.8, 0.07 ), \ irit.ctlpt( irit.E3, 5.5, 0.3, 0.3 ), \ irit.ctlpt( irit.E3, 5.5, 0.1, 0.65 ), \ irit.ctlpt( irit.E3, 5.5, 0, 0.65 ) ), irit.list( irit.KV_OPEN ) ) crosssection6 = makecrosssection(c6) fusefront = irit.sfromcrvs( irit.list( crosssection0, crosssection1, crosssection2, crosssection3, crosssection4, crosssection5,\ crosssection6 ), 3, irit.KV_OPEN ) irit.attrib(fusefront, "rgb", irit.GenStrObject("128, 128, 255")) irit.attrib(fusefront, "texture", irit.GenStrObject("camouf")) irit.free(c3) irit.free(c4) irit.free(c5) irit.free(c6) irit.free(crosssection0) irit.free(crosssection1) irit.free(crosssection2) irit.free(crosssection3) irit.free(crosssection4) irit.free(crosssection5) irit.free(crosssection6)
irit.ctlpt( irit.E2, 2, 0 ), \ irit.ctlpt( irit.E2, 4, 1 ) ) ) irit.awidth(c1, 0.02) 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(c1, r1) c2a = irit.compose(c1, r2) s1 = irit.sfromcrvs( irit.list(c1a * irit.ty(1) * irit.tz(3), c1a * irit.ty((-1)) * irit.tz(2), c1a * irit.tz(1), c1a), 4, irit.KV_OPEN) irit.attrib(s1, "gray", irit.GenRealObject(0.2)) irit.awidth(s1, 0.012) s2 = irit.sfromcrvs( irit.list(c2a, c2a * irit.tz((-1)), c2a * irit.ty(1) * irit.tz((-2)), c2a * irit.ty(1) * irit.tz((-3))), 4, irit.KV_OPEN) irit.attrib(s2, "gray", irit.GenRealObject(0.35)) irit.awidth(s2, 0.012) all1 = irit.list(s1, s2, c1) irit.interact(all1) irit.save("crv1dcmp", all1)
# # Surface point distance. # crv = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 1.68, (-1.37 ) ), \ irit.ctlpt( irit.E2, 1.34, 1.41 ), \ irit.ctlpt( irit.E2, 0.629, (-0.453 ) ), \ irit.ctlpt( irit.E2, (-0.5 ), 2 ), \ irit.ctlpt( irit.E2, (-0.759 ), (-1.14 ) ) ), irit.list( irit.KV_OPEN ) ) srf1 = irit.sfromcrvs( irit.list(crv, crv * irit.tz(0.4) * irit.ty(1.5), crv * irit.tz(1) * irit.ty(0), crv * irit.tz(1.6) * irit.ty(1.6), crv * irit.tz(2) * irit.ty(0)), 3, irit.KV_OPEN) * irit.sc(0.3) * irit.ty((-0.2)) irit.color(srf1, irit.GREEN) irit.attrib(srf1, "width", irit.GenRealObject(0.02)) all1 = irit.list(srf1, uvpos2pt(srf1, irit.point((-0.1), 0.5, 0.1), 1), uvpos2pt(srf1, irit.point(0.3, 0.4, 0.1), 1), uvpos2pt(srf1, irit.point(0.3, 0.4, 0.4), 1), uvpos2pt(srf1, irit.point((-0.1), 0.5, 0.4), 1)) irit.interact(all1) all2 = irit.list(srf1, uvpos2pt(srf1, irit.point((-0.1), 0.5, 0.1), 0), uvpos2pt(srf1, irit.point(0.3, 0.4, 0.1), 0), uvpos2pt(srf1, irit.point(0.3, 0.4, 0.4), 0),
irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ) ), irit.list( 0, 0, 0, 1, 1, 2,\ 2, 3, 3, 4, 4, 4 ) ) * irit.trans( ( (-1.5 ), 0, 0 ) ) irit.color( c4, irit.GREEN ) c5 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ), \ irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, (-0.071 ) ), \ irit.ctlpt( irit.P3, 1, 2.5, 0.4, 0 ), \ irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, 0.6 ), \ irit.ctlpt( irit.P3, 1, 2.5, 0, 0.5 ), \ irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), 0.6 ), \ irit.ctlpt( irit.P3, 1, 2.5, (-0.4 ), 0 ), \ irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), (-0.071 ) ), \ irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ) ), irit.list( 0, 0, 0, 1, 1, 2,\ 2, 3, 3, 4, 4, 4 ) ) * irit.trans( ( 0, 0, 0 ) ) irit.color( c5, irit.GREEN ) fusefront = irit.sfromcrvs( irit.list( c1, c2, c3, c4, c5 ), 3,\ irit.KV_OPEN ) if ( do_texture == 1 ): irit.attrib( fusefront, "texture", texture ) irit.attrib( fusefront, "rgb", irit.GenStrObject(blackcolor) ) irit.color( fusefront, irit.YELLOW ) # # Back part of the fuselage: # c1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.P3, 1, 2.5, 0, (-0.1 ) ), \ irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, (-0.071 ) ), \ irit.ctlpt( irit.P3, 1, 2.5, 0.4, 0 ), \ irit.ctlpt( irit.P3, 0.707, 1.77, 0.283, 0.566 ), \ irit.ctlpt( irit.P3, 1, 2.5, 0, 0.8 ), \ irit.ctlpt( irit.P3, 0.707, 1.77, (-0.283 ), 0.566 ), \ irit.ctlpt( irit.P3, 1, 2.5, (-0.4 ), 0 ), \
irit.point(0.076425, 0.747313, 0.660062), irit.point((-0.030076), 0.34839, 0.936867), irit.point(0.591636, (-0.37821), 0.711986)) c = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.8, 1 ), \ irit.ctlpt( irit.E2, 1, 0.8 ), \ irit.ctlpt( irit.E2, 1, (-0.8 ) ), \ irit.ctlpt( irit.E2, 0.8, (-1 ) ), \ irit.ctlpt( irit.E2, (-0.8 ), (-1 ) ), \ irit.ctlpt( irit.E2, (-1 ), (-0.8 ) ), \ irit.ctlpt( irit.E2, (-1 ), 0.8 ), \ irit.ctlpt( irit.E2, (-0.8 ), 1 ) ), irit.list( irit.KV_PERIODIC ) ) s = irit.sfromcrvs( irit.list(c, c * irit.sc(0.7) * irit.tz(0.65), c * irit.sx(0.65) * irit.sy(0.75) * irit.tz(0.7), c * irit.sc(1.7) * irit.tz(1.1), c * irit.tz(1.5)), 3, irit.KV_OPEN) irit.color(s, irit.YELLOW) irit.SetResolution(70) silhs = irit.nil() # Loop with step one for slower, more complete result. # printf( "Processing vector %d\\n", list( i ) ): i = 1 while (i <= irit.SizeOf(sphdirs)): irit.snoc( irit.silhouette( s, irit.Fetch3TupleObject(
irit.ctlpt( irit.E3, (-0.4 ), 0.7, 0.2 ), \ irit.ctlpt( irit.E3, (-0.1 ), 1.1, 0 ) ), irit.list( irit.KV_OPEN ) ) c4 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 0.5, (-1 ), 0 ), \ irit.ctlpt( irit.E3, 0.4, (-0.7 ), 0.1 ), \ irit.ctlpt( irit.E3, 0.6, (-0.3 ), 0.2 ), \ irit.ctlpt( irit.E3, 0.4, 0.1, (-0.4 ) ), \ irit.ctlpt( irit.E3, 0.5, 0.7, 0.2 ), \ irit.ctlpt( irit.E3, 0.7, 1, 0.2 ) ), irit.list( irit.KV_OPEN ) ) c5 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 1.2, (-1 ), 0.1 ), \ irit.ctlpt( irit.E3, 1, (-0.5 ), 0.1 ), \ irit.ctlpt( irit.E3, 1, (-0.2 ), 0.2 ), \ irit.ctlpt( irit.E3, 1.1, 0.3, 0 ), \ irit.ctlpt( irit.E3, 1, 0.6, 0.1 ), \ irit.ctlpt( irit.E3, 0.9, 1, 0 ) ), irit.list( irit.KV_OPEN ) ) s2 = irit.sfromcrvs( irit.list( c1, c2, c3, c4, c5 ), 3,\ irit.KV_OPEN ) ref_knots = irit.list( 0.2, 0.2667, 0.4, 0.4667, 0.5333, 0.6,\ 0.7333, 0.8 ) s2r = irit.srefine( irit.srefine( s2, irit.ROW, 0, ref_knots ), irit.COL, 0,\ ref_knots ) irit.free(ref_knots) s2o = irit.offset(s2r, irit.GenRealObject(0.3), 10, 0) irit.color(s2o, irit.GREEN) irit.SetResolution(20) # # Computing self intersection by a Boolean operation with itself - Parametric. #
irit.ctlpt( irit.E3, 0.432, 0.48, (-0.3 ) ), \ irit.ctlpt( irit.E3, 0.521, (-0.08 ), 0.4 ) ), irit.list( irit.KV_OPEN ) ) irit.color(c4a, irit.MAGENTA) c5 = irit.cbspline( 2, irit.list( irit.ctlpt( irit.E2, 0.54, 0.42 ), \ irit.ctlpt( irit.E2, 0.46, 0.01 ) ), irit.list( irit.KV_OPEN ) ) irit.color(c5, irit.GREEN) c6 = irit.pcircle((0, 0, 0), 1) irit.color(c6, irit.RED) s2 = irit.ruledsrf(c2, c2 * irit.tz(0.5)) irit.color(s2, irit.CYAN) s3 = irit.sfromcrvs( irit.list(c3 * irit.tz((-0.5)), c3 * irit.sc(1.3), c3 * irit.tz(0.5)), 3, irit.KV_OPEN) irit.color(s3, irit.YELLOW) # ############################################################################ displayobjobjmdres(pt1, c6, 1e-010) displayobjobjmdres(pt2, c2, 1e-010) displayobjobjmdres(pt2, c4, 1e-010) displayobjobjmdres(c3, c3 * irit.tx((-0.5)), 1e-010) displayobjobjmdres(c4, c4 * irit.rz(180), 1e-010)
irit.interact( irit.list( irit.GetAxes(), apline2, c2 ) ) irit.save( "antipdl1", irit.list( irit.list( c1, apline1 ) * irit.tx( (-1 ) ), irit.list( c2, apline2 ) * irit.tx( 1 ) ) ) # ############################################################################ c1 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0.7, 0.5 ), \ irit.ctlpt( irit.E2, (-0.4 ), 0.4 ), \ irit.ctlpt( irit.E2, (-0.4 ), (-0.4 ) ), \ irit.ctlpt( irit.E2, 0.7, (-0.5 ) ) ), irit.list( irit.KV_OPEN ) ) c2 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0.7, 0.5 ), \ irit.ctlpt( irit.E2, (-0.4 ), (-0.8 ) ), \ irit.ctlpt( irit.E2, (-0.4 ), 0.8 ), \ irit.ctlpt( irit.E2, 0.7, (-0.5 ) ) ), irit.list( irit.KV_OPEN ) ) s1 = irit.sfromcrvs( irit.list( c1, c2 * irit.sc( 1.1 ) * irit.tx( (-0.2 ) ) * irit.tz( 0.2 ), c2 * irit.sx( 1.1 ) * irit.tx( (-0.2 ) ) * irit.tz( 0.4 ), c1 * irit.tz( 0.6 ) ), 3, irit.KV_OPEN ) apline1 = evalantipodalptsonsrf( s1 ) irit.interact( irit.list( irit.GetAxes(), apline1, s1 ) ) c1 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 1, 0.15 ), \ irit.ctlpt( irit.E2, (-0.4 ), 0.4 ), \ irit.ctlpt( irit.E2, (-0.4 ), (-0.4 ) ), \ irit.ctlpt( irit.E2, 1, (-0.15 ) ) ), irit.list( irit.KV_OPEN ) ) c2 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 1, 0.1 ), \ irit.ctlpt( irit.E2, 0.65, (-0.2 ) ), \ irit.ctlpt( irit.E2, (-0.2 ), 0.25 ), \ irit.ctlpt( irit.E2, (-0.2 ), (-0.252 ) ), \
# Gershon Elber, November 1995 # ptlist = irit.nil( ) i = 0 while ( i <= 7 ): irit.snoc( irit.point( math.cos( i * 2 * math.pi/8 ), math.sin( i * 2 * 3.14159/8 ), 0 ), ptlist ) i = i + 1 c1 = irit.coerce( irit.cbspline( 3, ptlist, irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ) * irit.rz( (-22.5 ) ) c2 = irit.coerce( irit.cbspline( 2, ptlist, irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ) * irit.sc( 1.1 ) minsize = 0.01 body = irit.sfromcrvs( irit.list( c2 * irit.sc( minsize ) * irit.tz( 0.05 ), c2 * irit.sc( 0.7 ) * irit.tz( 0.05 ), c2 * irit.sc( 0.8 ) * irit.tz( 0.05 ), c2 * irit.sc( 0.9 ), c2, c2 * irit.tz( 2 ), c2 * irit.tz( 2.2 ), c1 * irit.tz( 2.2 ), c1 * irit.tz( 2 ), c1 * irit.tz( 0.4 ), c1 * irit.sc( 0.5 ) * irit.tz( 0.2 ), c1 * irit.sc( minsize ) * irit.tz( 0.2 ) ), 3, irit.KV_OPEN ) handaxis = irit.crefine( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \ irit.ctlpt( irit.E3, 0.3, 0, 0.1 ), \ irit.ctlpt( irit.E3, 0.5, 0, 0.5 ), \ irit.ctlpt( irit.E3, 0.5, 0, 0.8 ), \ irit.ctlpt( irit.E3, 0, 0, 0.8 ) ), irit.list( irit.KV_OPEN ) ), 0, irit.list( 0.1, 0.23, 0.43, 0.57 ) ) handle = irit.swpsclsrf( c1 * irit.sx( 0.7 ), handaxis * irit.sc( 1.5 ), irit.GenRealObject(0.15), irit.list( 0, 1, 0 ), 1 ) * irit.trans( ( 1, 0, 0.4 ) ) cup = irit.list( body, handle ) irit.color( cup, irit.WHITE ) irit.save( "cup", cup ) irit.interact( cup )
def antbody(): save_res = irit.GetResolution() c = irit.pcircle((0, 0, 0), 1) body = (-irit.sfromcrvs( irit.list( c * irit.sc(1e-006) * irit.ty((-0.1)) * irit.tz(0.19), c * irit.sy(0.8) * irit.sc(0.07) * irit.ty((-0.1)) * irit.tz(0.19), c * irit.sy(0.8) * irit.sc(0.11) * irit.ty((-0.1)) * irit.tz(0.21), c * irit.sy(0.8) * irit.sc(0.14) * irit.ty((-0.1)) * irit.tz(0.23), c * irit.sy(0.8) * irit.sc(0.14) * irit.ty((-0.1)) * irit.tz(0.26), c * irit.sy(0.8) * irit.sc(0.11) * irit.ty((-0.1)) * irit.tz(0.28), c * irit.sy(0.8) * irit.sc(0.11) * irit.ty((-0.1)) * irit.tz(0.29), c * irit.sy(0.8) * irit.sc(0.24) * irit.ty( (-0.05)) * irit.tz(0.31), c * irit.sy(0.8) * irit.sc(0.27) * irit.ty( (-0.05)) * irit.tz(0.41), c * irit.sy(0.8) * irit.sc(0.19) * irit.ty( (-0.05)) * irit.tz(0.44), c * irit.sy(0.8) * irit.sc(0.19) * irit.ty( (-0.05)) * irit.tz(0.45), c * irit.sy(0.8) * irit.sc(0.3) * irit.ty( (-0.035)) * irit.tz(0.47), c * irit.sy(0.8) * irit.sc(0.32) * irit.ty( (-0.035)) * irit.tz(0.59), c * irit.sy(0.8) * irit.sc(0.24) * irit.ty( (-0.035)) * irit.tz(0.62), c * irit.sy(0.8) * irit.sc(0.24) * irit.ty( (-0.035)) * irit.tz(0.63), c * irit.sy(0.8) * irit.sc(0.3) * irit.ty((-0.03)) * irit.tz(0.65), c * irit.sy(0.8) * irit.sc(0.28) * irit.ty( (-0.03)) * irit.tz(0.76), c * irit.sy(0.8) * irit.sc(0.07) * irit.ty((-0.1)) * irit.tz(0.85), c * irit.sy(0.8) * irit.sc(0.07) * irit.ty((-0.1)) * irit.tz(0.87), c * irit.sy(0.8) * irit.sc(0.18) * irit.ty((-0.1)) * irit.tz(0.93), c * irit.sy(0.8) * irit.sc(0.18) * irit.ty((-0.1)) * irit.tz(1.03), c * irit.sy(0.8) * irit.sc(0.07) * irit.ty((-0.1)) * irit.tz(1.1), c * irit.sy(0.8) * irit.sc(0.07) * irit.ty((-0.1)) * irit.tz(1.12), c * irit.sy(0.8) * irit.sc(0.18) * irit.ty( (-0.06)) * irit.tz(1.18), c * irit.sy(0.8) * irit.sc(0.18) * irit.ty( (-0.03)) * irit.tz(1.32), c * irit.sy(0.8) * irit.sc(0.07) * irit.ty((-0)) * irit.tz(1.41), c * irit.sy(0.8) * irit.sc(0.07) * irit.ty((-0)) * irit.tz(1.43), c * irit.sy(0.8) * irit.sc(0.22) * irit.ty(0.05) * irit.tz(1.5), c * irit.sy(0.8) * irit.sc(0.2) * irit.ty((-0)) * irit.tz(1.66), c * irit.sy(0.8) * irit.sc(0.05) * irit.ty( (-0.22)) * irit.tz(1.85), c * irit.sy(0.8) * irit.sc(1e-006) * irit.ty( (-0.22)) * irit.tz(1.86)), 3, irit.KV_OPEN)) irit.SetResolution(15) eye1 = irit.sphere((0, 0, 0), 0.08) * irit.rx(20) * irit.ry( (-20)) * irit.trans((0.15, 0.05, 1.59)) eye2 = eye1 * irit.sx((-1)) irit.SetResolution(20) bodycut = body / eye1 ^ eye2 irit.attrib(bodycut, "rgb", irit.GenStrObject("255,50,50")) eye1cut = eye1 / body irit.attrib(eye1cut, "reflection", irit.GenStrObject("0.85")) irit.attrib(eye1cut, "rgb", irit.GenStrObject("15,15,15")) eye2cut = eye2 / body irit.attrib(eye2cut, "reflection", irit.GenStrObject("0.85")) irit.attrib(eye2cut, "rgb", irit.GenStrObject("15,15,15")) irit.SetResolution(save_res) retval = irit.list(bodycut, irit.list(eye1cut, eye2cut)) return retval
irit.ctlpt( irit.E3, (-0.04 ), 0, 2.7 ), \ irit.ctlpt( irit.E3, (-0.04 ), 0, 2.5 ), \ irit.ctlpt( irit.E3, (-0.04 ), 0, 2.15 ) ), irit.list( irit.KV_OPEN ) ) base2 = irit.surfrev(base2sec) irit.free(base2sec) irit.attrib(base2, "transp", irit.GenRealObject(0.95)) irit.color(base2, irit.WHITE) wingsec = irit.cbspline( 2, irit.list( irit.ctlpt( irit.E3, (-1 ), (-1 ), 0 ), \ irit.ctlpt( irit.E3, (-1 ), 1, 0 ), \ irit.ctlpt( irit.E3, 1, 1, 0 ), \ irit.ctlpt( irit.E3, 1, (-1 ), 0 ), \ irit.ctlpt( irit.E3, (-1 ), (-1 ), 0 ) ), irit.list( irit.KV_OPEN ) ) wingframe = irit.sfromcrvs( irit.list(wingsec, wingsec * irit.sc(1.1), wingsec * irit.sc(1.1) * irit.tz(0.1), wingsec * irit.tz(0.1)), 3, irit.KV_OPEN) irit.free(wingsec) wingplane1 = irit.ruledsrf( irit.ctlpt( irit.E3, (-1 ), (-1 ), 0 ) + \ irit.ctlpt( irit.E3, (-1 ), 1, 0 ), \ irit.ctlpt( irit.E3, 1, (-1 ), 0 ) + \ irit.ctlpt( irit.E3, 1, 1, 0 ) ) wingplane2 = (-wingplane1) * irit.tz(0.1) irit.attrib(wingplane1, "rgb", irit.GenStrObject("10, 10, 10")) irit.attrib(wingplane2, "rgb", irit.GenStrObject("255, 255, 255")) irit.attrib(wingframe, "rgb", irit.GenStrObject("100, 100, 100")) wingbase = irit.list(wingframe, wingplane1, wingplane2) irit.free(wingframe) irit.free(wingplane1) irit.free(wingplane2)
irit.ctlpt( irit.E2, (-0.183 ), 0.252 ), \ irit.ctlpt( irit.E2, (-0.525 ), (-0.04 ) ) ), irit.list( irit.KV_OPEN ) ) * irit.tx( (-0.2 ) ) * irit.ty( (-0.2 ) ) sec2 = sec1 * irit.sy(0.5) * irit.sc(1.2) * irit.tz(2.5) * irit.rz(30) bladeside = irit.ruledsrf(sec1, sec2) bladetop = irit.ruledsrf(irit.cregion(sec2, 0, 0.5), (-irit.cregion(sec2, 0.5, 1))) blademain = irit.list(bladeside, bladetop) * irit.tz(0.2) irit.free(bladeside) irit.free(bladetop) bladefillet = irit.sfromcrvs( irit.list(sec1 * irit.sc(1.35) * irit.sy(1.5) * irit.tz((-0.1)), sec1, sec1 * irit.tz(0.2)), 3, irit.KV_OPEN) irit.free(sec1) irit.free(sec2) blade = irit.list(blademain, bladefillet) * irit.tx(0.1) * irit.ry( 90) * irit.sc(0.285) * irit.tx(0.636) * irit.rx(20) irit.attrib(blade, "rgb", irit.GenStrObject("128,128,128")) irit.free(blademain) irit.free(bladefillet) # # The Base #
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( ((-0.8), 0, 0.6)), c2 * irit.sc(0.2) * irit.sz(1.5) * irit.ry(75) * irit.trans( ((-0.82), 0, 0.66)), c * irit.sc(0.2) * irit.sz(1.2) * irit.ry(75) * irit.trans( ((-0.79), 0, 0.8)), c * irit.sc(0.15) * irit.sz(1.2) * irit.ry(75) * irit.trans( ((-0.82), 0, 0.95)), c * irit.sc(0.05) * irit.sz(1.2) * irit.ry(75) * irit.trans( ((-0.82), 0, 1.02)), c * irit.sc(0.001) * irit.sz(1.2) * irit.ry(75) * irit.trans( ((-0.82), 0, 1.02))) irit.view(crvs, irit.ON) duck = irit.sfromcrvs(crvs, 4, irit.KV_OPEN) irit.save("duck", duck) irit.interact(duck) irit.free(duck) irit.free(crvs) irit.free(c) irit.free(c2)