示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
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) )
示例#7
0
    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( \
示例#8
0
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 ) )
示例#9
0
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)
示例#10
0
                                                 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 ) );
示例#11
0
#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(
示例#12
0
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 ) ), \
示例#13
0
          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))
示例#14
0
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
#
示例#15
0
          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)
示例#16
0
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))

#
示例#17
0
#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()
示例#18
0
    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):
示例#19
0
                                               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)
示例#20
0
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).
#
示例#21
0
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),
示例#22
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.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

#
示例#23
0
#  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()
示例#24
0
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)