def coercetobezpsrf(mv, umin, umax, vmin, vmax): mvbzr = irit.coerce(mv, irit.BEZIER_TYPE) srfbzr = irit.coerce(irit.coerce(mvbzr, irit.SURFACE_TYPE), irit.P3) srfbzr = irit.sregion( irit.sregion( srfbzr, irit.ROW, umin, umax ), irit.COL, vmin,\ vmax ) retval = srfbzr return retval
def bishop(s, clr): retval = (-irit.surfprev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.0001, 0.82 ), \ irit.ctlpt( irit.E2, 0.028, 0.82 ), \ irit.ctlpt( irit.E2, 0.028, 0.77 ), \ irit.ctlpt( irit.E2, 0.01, 0.77 ), \ irit.ctlpt( irit.E2, 0.01, 0.765 ), \ irit.ctlpt( irit.E2, 0.06, 0.76 ), \ irit.ctlpt( irit.E2, 0.09, 0.69 ), \ irit.ctlpt( irit.E2, 0.06, 0.625 ), \ irit.ctlpt( irit.E2, 0.02, 0.62 ), \ irit.ctlpt( irit.E2, 0.02, 0.61 ), \ irit.ctlpt( irit.E2, 0.08, 0.6 ), \ irit.ctlpt( irit.E2, 0.08, 0.59 ), \ irit.ctlpt( irit.E2, 0.03, 0.58 ), \ irit.ctlpt( irit.E2, 0.03, 0.56 ), \ irit.ctlpt( irit.E2, 0.12, 0.55 ), \ irit.ctlpt( irit.E2, 0.12, 0.53 ), \ irit.ctlpt( irit.E2, 0.05, 0.51 ), \ irit.ctlpt( irit.E2, 0.07, 0.29 ), \ irit.ctlpt( irit.E2, 0.18, 0.12 ), \ irit.ctlpt( irit.E2, 0.18, 0 ) ), irit.list( irit.KV_OPEN ) ) * irit.rx( 90 ) ) ) * irit.sc( s ) bishoptop = irit.sregion(retval, irit.ROW, 0, 0.1) bishopbody = irit.sregion(retval, irit.ROW, 0.1, 1) irit.attrib(bishoptop, "rgb", irit.GenStrObject("255,255,100")) irit.attrib(bishopbody, "rgb", irit.GenStrObject(clr)) retval = irit.list(bishopbody, bishoptop) return retval
def coercetobezsrf(mv, umin, umax, vmin, vmax): mvbzr = irit.coerce(mv, irit.BEZIER_TYPE) srfbzr = irit.coerce(irit.coerce(mvbzr, irit.SURFACE_TYPE), irit.E3) * irit.rotx((-90)) * irit.roty((-90)) srfbzr = irit.sregion( irit.sregion( srfbzr, irit.ROW, umin, umax ), irit.COL, vmin,\ vmax ) retval = srfbzr return retval
def makealpha( a, clr ): aa = ( 2 * a - 1 )/float(a * a) alp = irit.quadric( irit.list( aa, 1, 1, 0, 0, 0,\ (-2 ), 0, 0, 1 ) ) if ( a < 0.5 ): alp1 = irit.sregion( irit.sregion( alp, irit.ROW, 0, 1 ), irit.COL, 0,\ 0.7 ) alp1 = irit.smoebius( irit.smoebius( alp1, 0, irit.COL ), 0, irit.ROW ) else: alp1 = alp * irit.tx( 0 ) retval = irit.list( alp1, alp1 * irit.rx( 90 ), alp1 * irit.rx( 180 ), alp1 * irit.rx( 270 ) ) irit.color( retval, clr ) irit.adwidth( retval, 3 ) return retval
def makealpha( a, clr ): aa = ( 2 * a - 1 )/float(a * a) bb = (-irit.sqr( ( 1 - a )/float(a) ) ) alp = irit.quadric( irit.list( aa, bb, 1, 0, 0, 0,\ (-2 ), 0, 0, 1 ) ) alp1 = irit.sregion( irit.sregion( alp, irit.ROW, (-5 ), 0.45 ), irit.COL, 0,\ 200 ) alp1 = irit.smoebius( irit.smoebius( alp1, 0, irit.COL ), 0, irit.ROW ) alp2 = irit.sregion( irit.sregion( alp, irit.ROW, (-5 ), 0.45 ), irit.COL, (-200 ),\ 0 ) alp2 = irit.smoebius( irit.smoebius( alp2, 0, irit.COL ), 0, irit.ROW ) retval = irit.list( alp1, alp2 ) irit.color( retval, clr ) irit.adwidth( retval, 3 ) return retval
irit.free( vtailantn ) # # Here are the wings: # c1 = ( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 3.3, 0, 0.1 ), \ irit.ctlpt( irit.E3, 3.7, 0, 0.3 ), \ irit.ctlpt( irit.E3, 4.4, 0, 0.3 ), \ irit.ctlpt( irit.E3, 9, 0, (-0.1 ) ) ), irit.list( irit.KV_OPEN ) ) + irit.cbspline( 3, irit.list( \ irit.ctlpt( irit.E3, 9, 0, (-0.1 ) ), \ irit.ctlpt( irit.E3, 6, 0, (-0.1 ) ), \ irit.ctlpt( irit.E3, 3.3, 0, 0.1 ) ), irit.list( irit.KV_OPEN ) ) ) c2 = c1 * irit.scale( ( 0.02, 0.02, 0.02 ) ) * irit.trans( ( 8.4, 3.3, (-0.1 ) ) ) lwingmain = irit.ruledsrf( c1, c2 ) lwingcntr = irit.sregion( lwingmain, irit.ROW, 0, 0.78 ) if ( do_texture == 1 ): irit.attrib( lwingcntr, "texture", texture ) irit.attrib( lwingcntr, "rgb", irit.GenStrObject(graycolor) ) irit.color( lwingcntr, irit.WHITE ) lwingend = irit.sregion( lwingmain, irit.ROW, 0.78, 1 ) if ( do_texture == 1 ): irit.attrib( lwingend, "texture", texture ) irit.attrib( lwingend, "rgb", irit.GenStrObject(redcolor) ) irit.color( lwingend, irit.RED ) rwingmain = (-lwingmain ) * irit.scale( ( 1, (-1 ), 1 ) ) rwingcntr = irit.sregion( rwingmain, irit.ROW, 0, 0.78 ) if ( do_texture == 1 ): irit.attrib( rwingcntr, "texture", texture ) irit.attrib( rwingcntr, "rgb", irit.GenStrObject(graycolor) )
irit.cregion(irit.pcircle((0, 0, 0), 1), 0.001, 1.999) * irit.rx(90)) * irit.sx(0.8) * irit.sy(1.2) irit.color(s, irit.RED) paramumb = irit.sumbilic(s, 0.2, 1e-006) irit.interact(irit.list(evaltoeuclidean(s, paramumb), s)) # ################################ c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0.215, 0.427 ), \ irit.ctlpt( irit.E2, 1.34, 0.317 ), \ irit.ctlpt( irit.E2, 1.25, (-0.791 ) ), \ irit.ctlpt( irit.E2, (-0.573 ), (-1.05 ) ), \ irit.ctlpt( irit.E2, 1.12, (-1.31 ) ), \ irit.ctlpt( irit.E2, 1.19, (-1.51 ) ) ), irit.list( irit.KV_OPEN ) ) s = irit.sregion(irit.surfprev(c * irit.rx(90)), irit.COL, 0, 1) irit.color(s, irit.RED) paramumb = irit.sumbilic(s, 0.05, 1e-009) irit.interact(irit.list(evaltoeuclidean(s, paramumb), s)) # ################################ wig = irit.sbspline( 4, 4, irit.list( irit.list( irit.ctlpt( irit.E3, 0.0135, 0.463, (-1.01 ) ), \ irit.ctlpt( irit.E3, 0.411, (-0.462 ), (-0.94 ) ), \ irit.ctlpt( irit.E3, 0.699, 0.072, (-0.382 ) ), \ irit.ctlpt( irit.E3, 0.999, 0.072, (-0.382 ) ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.202 ), 1.16, (-0.345 ) ), \ irit.ctlpt( irit.E3, 0.211, 0.0227, (-0.343 ) ), \ irit.ctlpt( irit.E3, 0.5, 0.557, 0.215 ), \ irit.ctlpt( irit.E3, 0.7, 0.557, 0.215 ) ), irit.list( \
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 ) bodyin = irit.sregion( body, irit.ROW, 0.6, 1 ) irit.color( bodyin, irit.RED ) bodyout = irit.sregion( body, irit.ROW, 0, 0.6 ) irit.color( bodyout, irit.GREEN ) irit.interact( irit.list( bodyout, bodyin ) ) handleout = handle irit.color( handleout, irit.RED ) handlein = irit.offset( handleout, irit.GenRealObject(0.05), 0.05, 0 ) irit.color( handlein, irit.GREEN ) irit.interact( irit.list( handleout, handlein ) )
irit.color(sb2, irit.YELLOW) if (display == 1): irit.interact(irit.list(irit.GetAxes(), sb, sb1, sb2)) sbm = irit.smerge(sb1, sb2, irit.ROW, 1) if (display == 1): irit.interact(irit.list(irit.GetAxes(), sbm, sb1, sb2)) sbm = irit.smerge(sb1 * irit.trans(((-0.5), 0, 0)), sb2 * irit.trans((0.5, 0, 0)), irit.ROW, 0) if (display == 1): irit.interact(irit.list(irit.GetAxes(), sbm, sb1, sb2)) # # Region from surface. # sbr1 = irit.sregion(sb, irit.COL, 0.3, 0.6) irit.color(sbr1, irit.YELLOW) sbr2 = irit.sregion(sb, irit.COL, 0.8, 1) irit.color(sbr2, irit.GREEN) sbr3 = irit.sregion(sb, irit.ROW, 0.1, 0.4) irit.color(sbr3, irit.BLUE) irit.interact(irit.list(sb, sbr1, sbr2, sbr3)) # # Derivative, intergals and normal curves/surfaces # dcb = irit.cderive(cb) if (display == 1): irit.interact(irit.list(irit.GetAxes(), dcb, cb)) dsb1 = irit.sderive(sb, irit.ROW) irit.color(dsb1, irit.MAGENTA)
irit.ctlpt( irit.E3, 0.2, 2.55, (-0.112 ) ), \ irit.ctlpt( irit.E3, 0.4, 2.4, (-0.224 ) ), \ irit.ctlpt( irit.E3, 1.3, 2.4, (-0.728 ) ), \ irit.ctlpt( irit.E3, 1.3, 2.25, (-0.728 ) ) ), irit.list( \ irit.ctlpt( irit.E3, 0, 3, 0 ), \ irit.ctlpt( irit.E3, 0.8, 3, 0 ), \ irit.ctlpt( irit.E3, 0, 2.7, 0 ), \ irit.ctlpt( irit.E3, 0.2, 2.55, 0 ), \ irit.ctlpt( irit.E3, 0.4, 2.4, 0 ), \ irit.ctlpt( irit.E3, 1.3, 2.4, 0 ), \ irit.ctlpt( irit.E3, 1.3, 2.25, 0 ) ) ), irit.list( irit.list( 0, 0, 0, 0, 1, 1,\ 1, 2, 2, 2, 2 ), irit.list( 0, 0, 0, 0, 1, 1,\ 1, 2, 2, 2, 3, 3,\ 3, 4, 4, 4, 4 ) ) ) cap = irit.sreparam( irit.sregion( cap, irit.COL, 0.0005, 2 ), irit.COL, 0,\ 2 ) echosrc = irit.iritstate( "echosource", echosrc ) irit.free( echosrc ) irit.color( body, irit.RED ) irit.color( cap, irit.GREEN ) irit.color( spout, irit.BLUE ) irit.color( handle, irit.MAGENTA ) irit.SetViewMatrix( irit.scale( ( 0.3, 0.3, 0.3 ) )) teapot = irit.list( body, spout, handle, cap ) # interact( list( view_mat, Teapot ) );
#This is an IRIT script and as such requires both math and irit import: # import math import irit # # # Demonstrates and adaptively reduced the degeneracies of Gimbell Lock. # # Gershon Elber, April 1995. # # # Extracts and displays a half a sphere. # s = irit.sregion(irit.spheresrf(1), irit.ROW, 0, 1) irit.viewobj(s) # # Computes a curve on a sphere between two spheical angles by interpolating # between the two angles a piecewise linear curve. # def computesphericalcrv(theta1, theta2, phi1, phi2): ptlist = irit.nil() t = 0 while (t <= 100): theta = (theta2 * t + theta1 * (100 - t)) * math.pi / (180 * 100) phi = (phi2 * t + phi1 * (100 - t)) * math.pi / (180 * 100) irit.snoc( irit.point(
irit.save("cbise3d3", irit.list(c1, c2, bisectsrf)) # ############################################################################ # # A line and a (approximation of a) circle. # c1 = irit.creparam(irit.pcircle((0, 0, 0), 1), 0, 1) c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-2 ), 0, 1 ), \ irit.ctlpt( irit.E3, (-2 ), 0, (-1 ) ) ) ) irit.color(c1, irit.RED) irit.adwidth(c1, 3) irit.color(c2, irit.RED) irit.adwidth(c2, 3) bisectsrf = irit.cbisector3d(irit.list(c1, c2), 1) bisectsrf1 = irit.sregion(bisectsrf, irit.COL, 0, 0.3) bisectsrf2 = irit.sregion(bisectsrf, irit.COL, 0.7, 1) bisectsrf3 = irit.sregion(bisectsrf, irit.COL, 0.36, 0.64) irit.color(bisectsrf1, irit.GREEN) irit.color(bisectsrf2, irit.GREEN) irit.color(bisectsrf3, irit.GREEN) irit.interact(irit.list(c1, c2, bisectsrf1, bisectsrf2, bisectsrf3)) irit.save("cbise3d4", irit.list(c1, c2, bisectsrf1, bisectsrf2, bisectsrf3)) # ############################################################################ # # A quadratic Bezier and a (exact rational) ellipse. # c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-2 ), 0, (-1 ) ), \
irit.coerce(irit.nth(irit.mdivide(mt, 0, 0.5), 2), irit.TRIVAR_TYPE)) printtest("mdivide", irit.nth(irit.tdivide(t, irit.ROW, 0.5), 1), irit.coerce(irit.nth(irit.mdivide(mt, 1, 0.5), 1), irit.TRIVAR_TYPE)) printtest("mdivide", irit.nth(irit.tdivide(t, irit.ROW, 0.5), 2), irit.coerce(irit.nth(irit.mdivide(mt, 1, 0.5), 2), irit.TRIVAR_TYPE)) printtest("mdivide", irit.nth(irit.tdivide(t, irit.DEPTH, 0.5), 1), irit.coerce(irit.nth(irit.mdivide(mt, 2, 0.5), 1), irit.TRIVAR_TYPE)) printtest("mdivide", irit.nth(irit.tdivide(t, irit.DEPTH, 0.5), 2), irit.coerce(irit.nth(irit.mdivide(mt, 2, 0.5), 2), irit.TRIVAR_TYPE)) printtest("mregion", irit.cregion(c, 0.3, 0.66), irit.coerce(irit.mregion(mc, 0, 0.3, 0.66), irit.CURVE_TYPE)) printtest("mregion", irit.sregion(s, irit.COL, 0.3, 0.66), irit.coerce(irit.mregion(ms, 0, 0.3, 0.66), irit.SURFACE_TYPE)) printtest("mregion", irit.sregion(s, irit.ROW, 0.44, 0.55), irit.coerce(irit.mregion(ms, 1, 0.44, 0.55), irit.SURFACE_TYPE)) printtest("mregion", irit.sregion(irit.coerce(ms2, 8), irit.COL, 0.3, 0.66), irit.coerce(irit.mregion(ms2, 0, 0.3, 0.66), irit.SURFACE_TYPE)) printtest("mregion", irit.sregion(irit.coerce(ms2, 8), irit.ROW, 0.44, 0.55), irit.coerce(irit.mregion(ms2, 1, 0.44, 0.55), irit.SURFACE_TYPE)) printtest("mregion", irit.sregion(irit.coerce(ms3, 8), irit.ROW, 0.44, 0.55), irit.coerce(irit.mregion(ms3, 1, 0.44, 0.55), irit.SURFACE_TYPE)) printtest("mregion", irit.tregion(t, irit.COL, 0.15, 0.27), irit.coerce(irit.mregion(mt, 0, 0.15, 0.27), 13)) printtest("mregion", irit.tregion(t, irit.ROW, 0.5, 0.7), irit.coerce(irit.mregion(mt, 1, 0.5, 0.7), 13)) printtest("mregion", irit.tregion(t, irit.DEPTH, 0.65, 0.9), irit.coerce(irit.mregion(mt, 2, 0.65, 0.9), 13))
irit.save("bisectr4", irit.list(c1, c2, bisectsrf)) # ############################################################################ # # A line and a (approximation of a) circle. # c1 = irit.creparam(irit.pcircle((0, 0, 0), 1), 0, 1) c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-2 ), 0, 1 ), \ irit.ctlpt( irit.E3, (-2 ), 0, (-1 ) ) ) ) irit.color(c1, irit.RED) irit.adwidth(c1, 3) irit.color(c2, irit.RED) irit.adwidth(c2, 3) bisectsrf = irit.cbisector3d(irit.list(c1, c2), 1) bisectsrf1 = irit.sregion(bisectsrf, irit.COL, 0, 0.3) bisectsrf2 = irit.sregion(bisectsrf, irit.COL, 0.7, 1) bisectsrf3 = irit.sregion(bisectsrf, irit.COL, 0.36, 0.64) irit.color(bisectsrf1, irit.GREEN) irit.color(bisectsrf2, irit.GREEN) irit.color(bisectsrf3, irit.GREEN) irit.interact(irit.list(c1, c2, bisectsrf1, bisectsrf2, bisectsrf3)) irit.save("bisectr5", irit.list(c1, c2, bisectsrf)) # ############################################################################ # # A helix and a point #
irit.coerce(irit.symbprod(mc1, mc2), irit.CURVE_TYPE)) irit.save( "multivr2", irit.list(irit.mraise(mc2, 0, 5), irit.mraise(ms2, 4, 5), irit.mraise(mt1, 2, 5), irit.mraise(mt2, 3, 6), irit.mmerge(ms1, ms1, 0, 0), irit.symbdiff(mc2, mc2), irit.symbdiff(ms1, ms2), irit.symbprod(ms1, ms2), 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(s, irit.WHITE) irit.free(halfcirc) dus = irit.sderive(s, irit.ROW) irit.color(dus, irit.GREEN) dvs = irit.sderive(s, irit.COL) irit.color(dvs, irit.MAGENTA) if (display == 1): irit.interact(irit.list(irit.GetAxes(), s, dus, dvs)) ns = irit.snrmlsrf(s) irit.color(ns, irit.GREEN) if (display == 1): irit.interact(irit.list(irit.GetAxes(), s, ns)) s = irit.sregion( irit.sregion( s, irit.ROW, 0.2, 0.5 ), irit.COL, 0,\ 2 ) irit.color(s, irit.WHITE) dus = irit.sderive(s, irit.ROW) irit.color(dus, irit.GREEN) dvs = irit.sderive(s, irit.COL) irit.color(dvs, irit.MAGENTA) if (display == 1): irit.interact(irit.list(irit.GetAxes(), s, dus, dvs)) ns = irit.snrmlsrf(s) irit.color(ns, irit.GREEN) if (display == 1): irit.interact(irit.list(irit.GetAxes(), s, ns)) #
#This is an IRIT script and as such requires both math and irit import: # import math import irit # # # The Sphericon - See Scientific American, pp 98-99, October 1999. # # Gershon Elber, December 1999 # cone2 = irit.surfrev( irit.ctlpt( irit.E3, 0, 0, (-1 ) ) + \ irit.ctlpt( irit.E3, 1, 0, 0 ) + \ irit.ctlpt( irit.E3, 0, 0, 1 ) ) cone2half = irit.sregion(cone2, irit.COL, 0, 2) sphericon = irit.list(cone2half * irit.ry(90), cone2half * irit.rz(180)) irit.view(irit.list(sphericon, irit.GetAxes()), irit.ON) irit.save("sphercon", sphericon) irit.free(cone2) irit.free(cone2half) irit.free(sphericon) irit.pause()
irit.interact(irit.list(irit.GetAxes(), sb, sb1, sb2)) sbm = irit.smerge(sb1, sb2, irit.ROW, 1) if (display == 1): irit.interact(irit.list(irit.GetAxes(), sbm, sb1, sb2)) sbm = irit.smerge(sb1 * irit.trans(((-0.5), 0, 0)), sb2 * irit.trans((0.5, 0, 0)), irit.ROW, 0) if (display == 1): irit.interact(irit.list(irit.GetAxes(), sbm, sb1, sb2)) irit.free(sbm) irit.free(sb1) irit.free(sb2) # # Region from surface. # sbr1 = irit.sregion(sb, irit.COL, 1.3, 1.6) irit.color(sbr1, irit.YELLOW) sbr2 = irit.sregion(sb, irit.COL, 1.8, 2) irit.color(sbr2, irit.GREEN) sbr3 = irit.sregion(sb, irit.ROW, 4, 5) irit.color(sbr3, irit.BLUE) irit.interact(irit.list(sb, sbr1, sbr2, sbr3)) irit.free(sbr1) irit.free(sbr2) irit.free(sbr3) # # Derivative and normal curves/surfaces # dcb = irit.cderive(cb) if (display == 1):
irit.ctlpt( irit.E3, 0.211, 0.0227, (-0.343 ) ), \ irit.ctlpt( irit.E3, 0.5, 0.557, 0.215 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.294 ), 0.182, (-0.234 ) ), \ irit.ctlpt( irit.E3, 0.104, (-0.744 ), (-0.163 ) ), \ irit.ctlpt( irit.E3, 0.392, (-0.209 ), 0.395 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.509 ), 0.876, 0.432 ), \ irit.ctlpt( irit.E3, (-0.0963 ), (-0.259 ), 0.434 ), \ irit.ctlpt( irit.E3, 0.193, 0.276, 0.992 ) ), irit.list( \ irit.ctlpt( irit.E3, (-0.601 ), (-0.0993 ), 0.543 ), \ irit.ctlpt( irit.E3, (-0.203 ), (-1.03 ), 0.614 ), \ irit.ctlpt( irit.E3, 0.0854, (-0.491 ), 1.17 ) ) ), irit.list( irit.list( irit.KV_OPEN ), irit.list( irit.KV_OPEN ) ) ) drawbitangencies( s, 0, 0.125, (-1e-006 ), 0.1, 1,\ "" ) s1 = irit.sregion(s, irit.ROW, 0, 0.5) s2 = irit.sreparam( irit.sregion(s, irit.ROW, 0.5, 1) * irit.tz(0.3) * irit.tx((-0.2)), irit.COL, 10, 11) drawbitangencies( irit.list( s1, s2 ), 0, 0.125, (-1e-006 ), 0.1,\ 1, "" ) # ############################################################################ c1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, (-1 ), (-1 ) ), \ irit.ctlpt( irit.E2, 1, (-1 ) ), \ irit.ctlpt( irit.E2, 1, 1 ), \ irit.ctlpt( irit.E2, (-1 ), 1 ) ), irit.list( irit.KV_PERIODIC ) ) c1 = irit.coerce(c1, irit.KV_OPEN)
irit.view(irit.list(crvs), irit.ON) tris = raytraptris(crvs, 0.001, (-1e-010)) irit.interact(irit.list(crvs, tris)) irit.save("raytrap4", irit.list(crvs, tris)) # ############################################################################ # # This one can take some seconds. # srf1 = irit.planesrf((-1), (-1), 1, 1) srf1 = irit.coerce(irit.sraise(irit.sraise(srf1, irit.ROW, 3), irit.COL, 3), irit.E3) srf1 = irit.seditpt(srf1, irit.ctlpt(irit.E3, 0, 0, 4), 1, 1) * irit.tz( (-2)) * irit.rx(12) * irit.ry(23) srf1 = irit.sregion(irit.sregion(srf1, irit.ROW, 0.2, 0.8), irit.COL, 0.2, 0.8) srf2 = srf1 * irit.ry(110) * irit.rx(23) srf3 = srf1 * irit.ry(230) * irit.rx((-24)) srfs = irit.list(srf1, srf2, srf3) tris1 = raytraptris3d(srfs, 0.001, 1e-010) irit.interact(irit.list(srfs, tris1)) irit.save("rytrp3d1", irit.list(srfs, tris1)) # ############################################################################ # # This one is much slower (minutes). #
3, 4, 4, 4, 4 ) ) ) echosrc = irit.iritstate("echosource", echosrc) irit.free(echosrc) irit.color(body, irit.RED) irit.color(cap, irit.GREEN) irit.color(spout, irit.BLUE) irit.color(handle, irit.MAGENTA) irit.SetViewMatrix(irit.scale((0.3, 0.3, 0.3))) save_approx_opt = irit.GetPolyApproxOpt() irit.SetPolyApproxOpt(1) irit.SetPolyApproxTol(0.025) pbody = (-irit.gpolygon(irit.sregion(body, irit.COL, 0.8, 3), 1)) pspout = (-irit.gpolygon(irit.sregion(spout, irit.COL, 0, 1), 1)) phandle = (-irit.gpolygon(handle, 1)) * irit.tx(0.15) teapotaux = (pbody + pspout + phandle) basey = 0.025 bodybase = irit.poly( irit.list(((-2), basey, (-2)), ((-2), basey, 2), (2, basey, 2), (2, basey, (-2))), irit.FALSE) teapotaux2 = teapotaux * bodybase basey2 = 2.3 bodybase2 = irit.poly( irit.list(((-2), basey2, (-2)), ((-2), basey2, 2), (2, basey2, 2),
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.sregion(boardbaseaux, irit.COL, 3, 4)) irit.color(boardbase, irit.RED) irit.attrib(boardbase, "rgb", irit.GenStrObject("128,64,64")) board = irit.list(blacksqrs, whitesqrs, boardbase) # # Scaling factor and size of all pieces on board. # piecescale = 1.5 #
# A line and a (approximation of a) circle. # c1 = irit.creparam(irit.pcircle((0, 0, 0), 1), 0, 1) c2 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-2 ), 0, 1 ), \ irit.ctlpt( irit.E3, (-2 ), 0, (-1 ) ) ) ) c1 = irit.coerce(c1, irit.E3) irit.color(c1, irit.RED) irit.adwidth(c1, 3) irit.color(c2, irit.RED) irit.adwidth(c2, 3) t = 0 while (t <= 1.05): bisectsrf = irit.calphasector(irit.list(c1, c2), t) bisectsrf1 = irit.sregion(bisectsrf, irit.COL, 0, 0.3) bisectsrf2 = irit.sregion(bisectsrf, irit.COL, 0.7, 1) bisectsrf3 = irit.sregion(bisectsrf, irit.COL, 0.36, 0.64) irit.color(bisectsrf1, irit.GREEN) irit.color(bisectsrf2, irit.GREEN) irit.color(bisectsrf3, irit.GREEN) irit.view(irit.list(c1, c2, bisectsrf1, bisectsrf2, bisectsrf3), irit.ON) t = t + 0.1 irit.save( "asect3d5", irit.list(c1, c2, irit.calphasector(irit.list(c2, c1), 0.1), irit.calphasector(irit.list(c2, c1), 0.7), irit.calphasector(irit.list(c2, c1), 1))) irit.pause()
c = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0.2, 0 ), \ irit.ctlpt( irit.E3, 0.9, 0.5, 0.1 ), \ irit.ctlpt( irit.E3, 1.5, 0.5, 0.15 ), \ irit.ctlpt( irit.E3, 2.2, 0.3, 0.2 ), \ irit.ctlpt( irit.E3, 2.2, 0.1, 0.2 ) ), irit.list( irit.KV_OPEN ) ) s = irit.sfromcrvs( irit.list(c, c * irit.sy(0) * irit.sz(1.5), c * irit.sy( (-1))), 3, irit.KV_OPEN) * irit.ty(0.5) irit.SetPolyApproxOpt(0) irit.SetResolution(7) srftext2a = irit.gpolygon(s, 1) srftext2b = irit.gpolygon(irit.sregion(s, irit.ROW, 0, 0.5), 1) srftext2c = irit.gpolygon(irit.sregion(s, irit.ROW, 0.5, 1), 1) srftext2 = irit.list( srftext2a, srftext2b * irit.tx(0.5) * irit.ty((-0.5)), srftext2c * irit.tx(0.5) * irit.ty(0.5)) * irit.sz(0.5) * irit.tz( (-0.1)) * irit.rz(90) * irit.tx(1) srf2 = irit.sddmmap(srf, irit.gpolygon((-srftext2), 1), 4, 8, 1) irit.interact(srf2) srf2 = irit.sddmmap(srf, irit.gpolygon((-srftext2), 1), 8, 12, 1) irit.interact(srf2) irit.save("disp2map", srf2)