Exemplo n.º 1
0
def rook(s, clr):
    rookbase = (-irit.surfprev( ( irit.ctlpt( irit.E2, 0.001, 0.55 ) + \
                                   irit.ctlpt( irit.E2, 0.11, 0.55 ) + \
                                   irit.ctlpt( irit.E2, 0.11, 0.63 ) + \
                                   irit.ctlpt( irit.E2, 0.13, 0.63 ) + irit.cbspline( 3, irit.list( \
                                   irit.ctlpt( irit.E2, 0.13, 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 ) ) )
    axs = irit.crefine( irit.creparam( irit.pcircle( ( 0, 0, 0 ), 1 ), 0, 1 ),\
    0, irit.list( 0.05, 0.1, 0.15, 0.2, 0.3, 0.35,\
    0.4, 0.45, 0.55, 0.6, 0.65, 0.7,\
    0.8, 0.85, 0.9, 0.95 ) )
    scl = irit.cbspline( 2, irit.list( \
                                   irit.ctlpt( irit.E2, 0, 0.01 ), \
                                   irit.ctlpt( irit.E2, 0.5, 0.01 ), \
                                   irit.ctlpt( irit.E2, 0.5, 1 ), \
                                   irit.ctlpt( irit.E2, 1, 1 ), \
                                   irit.ctlpt( irit.E2, 0, 0.01 ) ), irit.list( 0, 0, 0.7, 0.701, 1.999, 2,\
    3 ) )
    scl = irit.creparam( scl + scl * irit.tx( 1 ) + scl * irit.tx( 2 ) + scl * irit.tx( 3 ) + scl * irit.tx( 4 ) + scl * irit.tx( 5 ) + \
                                   irit.ctlpt( irit.E2, 6, 0.01 ), 0, 1 )
    rookwall = irit.swpsclsrf( \
                                   irit.ctlpt( irit.E2, (-0.08 ), 0 ) + \
                                   irit.ctlpt( irit.E2, 0.08, 0 ) + \
                                   irit.ctlpt( irit.E2, 0.08, 0.6 ) + \
                                   irit.ctlpt( irit.E2, (-0.08 ), 0.6 ) + \
                                   irit.ctlpt( irit.E2, (-0.08 ), 0 ), axs, scl, irit.point( 0, 0, 1 ), 2 ) * irit.sc( 0.12 ) * irit.tz( 0.63 )
    irit.attrib(rookwall, "rgb", irit.GenStrObject("255,255,100"))
    irit.attrib(rookbase, "rgb", irit.GenStrObject(clr))
    retval = irit.list(rookbase, rookwall) * irit.sc(s)
    return retval
Exemplo n.º 2
0
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
Exemplo n.º 3
0
def skel2dcolor( prim1, prim2, prim3, eps, mzerotols, drawall, fname ):
    equapt = irit.skel2dint( prim1, prim2, prim3, 100, eps, 300, mzerotols )
    if ( irit.SizeOf( equapt ) > 1 ):
        irit.printf( "%d solutions detected\n", irit.list( irit.SizeOf( equapt ) ) )
    irit.color( equapt, irit.WHITE )
    irit.adwidth( prim1, 2 )
    irit.adwidth( prim2, 2 )
    irit.adwidth( prim3, 2 )
    tans = irit.nil(  )
    edges = irit.nil(  )
    circs = irit.nil(  )
    i = 1
    while ( i <= irit.SizeOf( equapt ) ):
        e = irit.nth( equapt, i )
        clrs = getrandomcolors(  )
        clr = irit.nth( clrs, 1 )
        dclr = irit.nth( clrs, 2 )
        d = irit.getattr( e, "prim1pos" )
        irit.snoc( d, tans )
        irit.snoc( setcolor( irit.coerce( irit.getattr( e, "prim1pos" ), irit.E2 ) + irit.coerce( e, irit.E2 ), dclr ), edges )
        irit.snoc( irit.getattr( e, "prim2pos" ), tans )
        irit.snoc( setcolor( irit.coerce( irit.getattr( e, "prim2pos" ), irit.E2 ) + irit.coerce( e, irit.E2 ), dclr ), edges )
        irit.snoc( irit.getattr( e, "prim3pos" ), tans )
        irit.snoc( setcolor( irit.coerce( irit.getattr( e, "prim3pos" ), irit.E2 ) + irit.coerce( e, irit.E2 ), dclr ), edges )
        irit.snoc( setcolor( irit.pcircle( irit.Fetch3TupleObject(irit.coerce( e, irit.VECTOR_TYPE )), 
										   irit.dstptpt( d, 
														 e ) ), 
							 clr ), 
				   circs )
        i = i + 1
    irit.color( edges, irit.MAGENTA )
    irit.color( tans, irit.GREEN )
    if ( drawall ):
        all = irit.list( prim1, prim2, prim3, edges, tans, circs,\
        equapt )
    else:
        all = irit.list( prim1, prim2, prim3, circs )
    if ( irit.SizeOf( irit.GenStrObject(fname) ) > 0 ):
        irit.save( fname, all )
    irit.view( all, irit.ON )
Exemplo n.º 4
0
ccrv = irit.compose(srf, crv)
irit.color(ccrv, irit.CYAN)

if (display == 1):
    irit.interact(irit.list(srf, crv, ccrv))

irit.save("cs2comps", irit.list(srf, crv, ccrv))

# ################################

srf = irit.sreparam( irit.surfprev( irit.ctlpt( irit.E3, 1, 0, (-1 ) ) + \
                                    irit.ctlpt( irit.E3, 1, 0, 1 ) ), irit.COL, 0,\
1 ) * irit.sc( 0.5 )
irit.color(srf, irit.MAGENTA)

crv = irit.pcircle((0.45, 0.55, 0), 0.4)
irit.color(crv, irit.YELLOW)

ccrv = irit.compose(srf, crv)
irit.color(ccrv, irit.CYAN)

if (display == 1):
    irit.interact(irit.list(irit.GetAxes(), srf, crv, ccrv))

irit.save("cs3comps", irit.list(srf, crv, ccrv))

x = (-1.1)
while (x <= 0.9):
    crv = irit.pcircle((x, 0.45, 0), 0.4)
    irit.color(crv, irit.YELLOW)
    ccrv = irit.compose(srf, crv)
Exemplo n.º 5
0
    irit.view(irit.list(irit.GetAxes(), c1, pt2, bisectcrv), irit.ON)
    t = t + 0.05

irit.save(
    "asect2d2",
    irit.list(c1, pt2, irit.calphasector(irit.list(c1, pt2), 0.1),
              irit.calphasector(irit.list(c1, pt2), 0.5),
              irit.calphasector(irit.list(c1, pt2), 1)))

irit.pause()

# ############################################################################
#
#  A point and a circle in the XY plane
#
c1 = irit.pcircle((0.3, 0.2, 0), 1.1)
pt2 = irit.point((-0.5), 0.5, 0)

c1 = irit.coerce(c1, irit.E2)
irit.color(c1, irit.RED)
irit.adwidth(c1, 3)
irit.color(pt2, irit.RED)
irit.adwidth(pt2, 3)

t = 0
while (t <= 1.05):
    bisectcrv = irit.calphasector(irit.list(c1, pt2), t)
    irit.color(bisectcrv, irit.GREEN)
    irit.view(irit.list(irit.GetAxes(), c1, pt2, bisectcrv), irit.ON)
    t = t + 0.1
Exemplo n.º 6
0
        irit.pause()


#  Faster product using Bezier decomposition.
iprod = irit.iritstate("bspprodmethod", irit.GenRealObject(0))
echosrc = irit.iritstate("echosource", irit.GenRealObject(0))
dlevel = irit.iritstate("dumplevel", irit.GenRealObject(256 + 1))

c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-1 ), 0.5, 2 ), \
                              irit.ctlpt( irit.E3, 0, 0, 2 ), \
                              irit.ctlpt( irit.E3, 1, (-1 ), 2 ), \
                              irit.ctlpt( irit.E3, 1, 1, 2 ) ) )
irit.attrib(c1, "width", irit.GenRealObject(0.02))
irit.attrib(c1, "color", irit.GenRealObject(14))

c2 = irit.pcircle((1, 2, 3), 1.25)
c2 = irit.creparam(c2, 0, 1)
irit.attrib(c2, "width", irit.GenRealObject(0.02))
irit.attrib(c2, "color", irit.GenRealObject(15))

s1 = irit.sbezier( irit.list( irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \
                                         irit.ctlpt( irit.E3, 0.25, 1, 0.5 ), \
                                         irit.ctlpt( irit.E3, 0.5, 0.25, 1 ) ), irit.list( \
                                         irit.ctlpt( irit.E3, 0.5, (-1 ), 0 ), \
                                         irit.ctlpt( irit.E3, 0.75, 0.25, 0.5 ), \
                                         irit.ctlpt( irit.E3, 1, (-0.5 ), 1 ) ), irit.list( \
                                         irit.ctlpt( irit.E3, 1, 0, 0 ), \
                                         irit.ctlpt( irit.E3, 1.25, 1, 0.5 ), \
                                         irit.ctlpt( irit.E3, 1.3, 0.25, 1 ) ) ) )
irit.attrib(s1, "color", irit.GenRealObject(7))
irit.attrib(s1, "rgb", irit.GenStrObject("244,164,96"))
Exemplo n.º 7
0
s2 = irit.blhermite(c1, c2, d1, d2, csec1, n)
irit.color(s2, irit.GREEN)

s3 = irit.blhermite(c1, c2, d1, d2, csec2, n)
irit.color(s3, irit.YELLOW)

irit.save("blending1", irit.list(s1, s2, s3))

irit.interact(irit.list(irit.GetAxes(), s1, s2, s3))

#
#  Blend on a (polynomial approximation of a) sphere:
#

s = (-irit.surfprev(
    irit.cregion(irit.pcircle((0, 0, 0), 1), 0, 2) * irit.rx(90)))
irit.attrprop(s, "u_resolution", irit.GenIntObject(3))
irit.attrprop(s, "v_resolution", irit.GenIntObject(3))
ds = irit.sderive(s, irit.ROW)

c1 = (-irit.csurface(s, irit.ROW, 0.8))
c2 = (-irit.csurface(s, irit.ROW, 1.2))

d1 = (-irit.csurface(ds, irit.ROW, 0.8))
d2 = (-irit.csurface(ds, irit.ROW, 1.2))

s1 = irit.hermite(c1, c2, d1, d2)
irit.color(s1, irit.RED)

n = irit.csurface(s, irit.ROW, 1)
Exemplo n.º 8
0
printtest("line", irit.isgeom(line, irit.GEOM_LINEAR, 1e-010), 1)

line = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 1, (-2 ) ), \
                                irit.ctlpt( irit.E3, 1, 2, (-2 ) ), \
                                irit.ctlpt( irit.E3, 4, 1, (-2 ) ) ) )
printtest("line", irit.isgeom(line, irit.GEOM_LINEAR, 1e-010), 0)

#
#  Circle
#
printtest("circle", irit.isgeom(line, irit.GEOM_CIRCULAR, 0.001), 0)

circ = irit.circle((0.1, 0.7, 3), math.pi)
printtest("circle", irit.isgeom(circ, irit.GEOM_CIRCULAR, 1e-010), 1)

pcirc = irit.pcircle((0.1, 0.7, 3), math.pi)
printtest("circle", irit.isgeom(pcirc, irit.GEOM_CIRCULAR, 1e-010), 0)
printtest("circle", irit.isgeom(pcirc, irit.GEOM_CIRCULAR, 0.01), 1)

irit.free(circ)
irit.free(pcirc)
irit.free(line)

#
#  Plane
#
pln = irit.ruledsrf( irit.ctlpt( irit.E3, 0, 0, 0 ) + \
                     irit.ctlpt( irit.E3, 1, 0, 0 ), \
                     irit.ctlpt( irit.E3, 0, 2, 0 ) + \
                     irit.ctlpt( irit.E3, 1, 1, 0 ) )
printtest("plane", irit.isgeom(pln, irit.GEOM_PLANAR, 1e-010), 1)
Exemplo n.º 9
0
irit.adwidth(c2, 3)

bisectsrf = irit.cbisector3d(irit.list(c1, c2), 1)
irit.color(bisectsrf, irit.GREEN)

irit.interact(irit.list(c1, c2, bisectsrf))

irit.save("bisectr2", irit.list(c1, c2, bisectsrf))

# ############################################################################
#
#  A line and a (approximation of a) circle.
#
c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 0, (-1 ) ), \
                              irit.ctlpt( irit.E3, 0, 0, 1 ) ) )
c2 = irit.pcircle((0, 0, 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)
irit.color(bisectsrf, irit.GREEN)

irit.interact(irit.list(c1, c2, bisectsrf))

irit.save("bisectr3", irit.list(c1, c2, bisectsrf))

# ############################################################################
#
#  A line and a (approximation of a) circle.
Exemplo n.º 10
0
#
view_mat3d = irit.rotx((-90)) * irit.roty(130) * irit.rotx((-35)) * irit.scale(
    (0.5, 0.5, 0.5)) * irit.trans((0, (-0.5), 0))
view_mat2d = irit.scale((0.1, 0.1, 0.1)) * irit.trans((0, (-0.8), 0))

cross = irit.creparam( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.7, 0, 0 ), \
                                                    irit.ctlpt( irit.E3, 0.7, 0, 0.06 ), \
                                                    irit.ctlpt( irit.E3, 0.1, 0, 0.1 ), \
                                                    irit.ctlpt( irit.E3, 0.1, 0, 0.6 ), \
                                                    irit.ctlpt( irit.E3, 0.6, 0, 0.6 ), \
                                                    irit.ctlpt( irit.E3, 0.8, 0, 0.8 ), \
                                                    irit.ctlpt( irit.E3, 0.8, 0, 1.4 ), \
                                                    irit.ctlpt( irit.E3, 0.6, 0, 1.6 ) ), irit.list( irit.KV_OPEN ) ), 0, 6 )
wglasssrf = irit.surfprev(cross * irit.scale((1.6, 1.6, 1.6)))

circ1 = irit.pcircle((0, 0, 0), 0.4)
circ2 = irit.pcircle((0, 0, 0), 0.2)

wglass = irit.trimsrf(
    wglasssrf,
    irit.list(circ1 * irit.trans((0.5, 5, 0)), circ1 * irit.trans((1.5, 5, 0)),
              circ1 * irit.trans((2.5, 5, 0)), circ1 * irit.trans((3.5, 5, 0)),
              circ2 * irit.trans((0.5, 1, 0)), circ2 * irit.trans((1.5, 1, 0)),
              circ2 * irit.trans((2.5, 1, 0)), circ2 * irit.trans(
                  (3.5, 1, 0))), 0)

irit.color(wglass, irit.YELLOW)

irit.interact(irit.list(view_mat3d, wglass))

wgl_prisa = irit.prisa(wglass, samppercrv, (-0.1), irit.COL, (0, 0.25, 0), 0)
Exemplo n.º 11
0
#
tv2d = irit.tderive(tv2, irit.COL)
irit.interact(tv2d)
tv2d = irit.tderive(tv2, irit.ROW)
irit.interact(tv2d)
tv2d = irit.tderive(tv2, irit.DEPTH)
irit.interact(tv2d)
irit.save("trivar10", irit.list(tv2d))

irit.free(tv2d)

#
#  Constructing via Ruled TV
#

s1 = irit.boolone(irit.pcircle((0, 0, 0), 1))
s2 = irit.boolone(irit.pcircle((0, 0, 1), 0.5))
irit.color(s1, irit.RED)
irit.attrib(s1, "adwidth", irit.GenRealObject(3))
irit.color(s2, irit.RED)
irit.attrib(s2, "adwidth", irit.GenRealObject(3))

tv1 = irit.ruledtv(s1, s2)

irit.interact(irit.list(tv1, s1, s2))

#
#  Constructing via Extrusion
#

tv2 = irit.extrude(s1, (0, 1, 0.5), 0)
Exemplo n.º 12
0
def queen(s, clr):
    queenbase = (-irit.surfprev( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.001, 1.01 ), \
                                                               irit.ctlpt( irit.E2, 0.02, 1.01 ), \
                                                               irit.ctlpt( irit.E2, 0.02, 0.972 ), \
                                                               irit.ctlpt( irit.E2, 0.01, 0.972 ), \
                                                               irit.ctlpt( irit.E2, 0.01, 0.97 ), \
                                                               irit.ctlpt( irit.E2, 0.09, 0.96 ), \
                                                               irit.ctlpt( irit.E2, 0.1, 0.912 ), \
                                                               irit.ctlpt( irit.E2, 0.1, 0.911 ), \
                                                               irit.ctlpt( irit.E2, 0.12, 0.911 ), \
                                                               irit.ctlpt( irit.E2, 0.12, 0.91 ), \
                                                               irit.ctlpt( irit.E2, 0.09, 0.84 ), \
                                                               irit.ctlpt( irit.E2, 0.07, 0.76 ), \
                                                               irit.ctlpt( irit.E2, 0.07, 0.74 ), \
                                                               irit.ctlpt( irit.E2, 0.085, 0.74 ), \
                                                               irit.ctlpt( irit.E2, 0.085, 0.72 ), \
                                                               irit.ctlpt( irit.E2, 0.07, 0.72 ), \
                                                               irit.ctlpt( irit.E2, 0.07, 0.7 ), \
                                                               irit.ctlpt( irit.E2, 0.1, 0.68 ), \
                                                               irit.ctlpt( irit.E2, 0.1, 0.66 ), \
                                                               irit.ctlpt( irit.E2, 0.14, 0.64 ), \
                                                               irit.ctlpt( irit.E2, 0.14, 0.62 ), \
                                                               irit.ctlpt( irit.E2, 0.06, 0.57 ), \
                                                               irit.ctlpt( irit.E2, 0.09, 0.33 ), \
                                                               irit.ctlpt( irit.E2, 0.21, 0.14 ), \
                                                               irit.ctlpt( irit.E2, 0.21, 0 ) ), irit.list( irit.KV_OPEN ) ) * irit.rx( 90 ) ) )
    queencrwn = (-irit.swpsclsrf( \
                                                               irit.ctlpt( irit.E2, (-0.1 ), 0 ) + \
                                                               irit.ctlpt( irit.E2, 0.1, 0 ) + \
                                                               irit.ctlpt( irit.E2, (-0.42 ), (-0.7 ) ) + \
                                                               irit.ctlpt( irit.E2, (-0.44 ), (-0.7 ) ) + \
                                                               irit.ctlpt( irit.E2, (-0.1 ), 0 ), irit.pcircle( ( 0, 0, 0 ), 1 ), irit.creparam( irit.coerce( irit.cbspline( 3, irit.list( \
                                                               irit.ctlpt( irit.E2, 0, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 1, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 2, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 3, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 4, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 5, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 6, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 7, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 8, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 9, 1.5 ), \
                                                               irit.ctlpt( irit.E2, 10, (-0.3 ) ), \
                                                               irit.ctlpt( irit.E2, 11, 1.5 ) ), irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ), 0, 1 ), irit.point( 0, 0, (-1 ) ), 2 ) ) * irit.sc( 0.11 ) * irit.tz( 0.911 )
    irit.attrib(queencrwn, "rgb", irit.GenStrObject("255,255,100"))
    irit.attrib(queenbase, "rgb", irit.GenStrObject(clr))
    retval = irit.list(queenbase, queencrwn) * irit.sc(s)
    return retval
Exemplo n.º 13
0
                                     irit.ctlpt( irit.E2, 0.6, 0.75 ), \
                                     irit.ctlpt( irit.E2, 0.6, 0.9 ), \
                                     irit.ctlpt( irit.E2, 0.4, 0.9 ), \
                                     irit.ctlpt( irit.E2, 0.4, 0.75 ), \
                                     irit.ctlpt( irit.E2, 0.2, 0.75 ), \
                                     irit.ctlpt( irit.E2, 0.2, 0.25 ), \
                                     irit.ctlpt( irit.E2, 0.5, 0.25 ) ), irit.list( irit.KV_OPEN ) )
tsrf1 = irit.trimsrf(srf1, tcrv1, 0)
irit.attrib(tsrf1, "resolution", irit.GenIntObject(2))

crv1 = irit.compose(srf1, tcrv1)
irit.free(srf1)
irit.free(tcrv1)
irit.color(crv1, irit.GREEN)

pc = irit.crefine(irit.pcircle(((-1.7), (-1), 1), 0.4), 0, irit.list(1, 2, 3))
srf2 = irit.ruledsrf( irit.ceditpt( irit.ceditpt( pc, irit.ctlpt( irit.E3, (-2.1 ), (-1 ), 1.2 ), 9 ), \
                                                      irit.ctlpt( irit.E3, (-1.3 ), (-1 ), 1.2 ), 3 ), pc * irit.tz( 1 ) ) * irit.rotz( (-90 ) ) * irit.trans( ( 2.7, (-0.7 ), 0 ) )
crv2 = irit.csurface(srf2, irit.ROW, 0)
irit.color(crv2, irit.GREEN)
irit.free(pc)

tan1 = irit.symbdiff(
    crv1 * irit.scale((0.6, 0.4, 1)) * irit.trans((0.7, 0.6, 0)), crv1)
tan2 = irit.pcircle((0, 0, 3), 0)

blend = irit.hermite(crv1, (-crv2), tan1 * irit.sc(1), (-tan2) * irit.sc(1))
irit.color(blend, irit.RED)
irit.attrib(blend, "width", irit.GenRealObject(0.02))

all = irit.list(blend, tsrf1, (-srf2))
Exemplo n.º 14
0
crv6 = crv1 * irit.rz(260)
crv7 = crv1 * irit.rz(310)

crvs = irit.list( crv1, crv2, crv3, crv4, crv5, crv6,\
crv7 )

irit.view(irit.list(irit.GetViewMatrix(), crvs), irit.ON)

tris = raytraptris(crvs, 0.001, 1e-010)

irit.interact(irit.list(crvs, tris))
irit.save("raytrap2", irit.list(crvs, tris))

# ############################################################################

crv1 = irit.pcircle(((-0.75), (-0.75), 0), 0.5)
crv2 = crv1 * irit.sc(1.5) * irit.tx(2)
crv3 = crv1 * irit.sc(0.5) * irit.tx(0.2) * irit.ty(0.6)
crvs = irit.list(crv1, crv2, crv3)
irit.view(irit.list(crvs), irit.ON)

tris = raytraptris(crvs, 0.001, (-1e-010))
irit.interact(irit.list(crvs, tris))
irit.save("raytrap3", irit.list(crvs, tris))

# ############################################################################

crv1 = irit.pcircle(((-0.75), (-0.75), 0), 0.5)
crv2 = crv1 * irit.sc(0.75) * irit.tx(2)
crv3 = crv1 * irit.sc(0.75) * irit.tx(2) * irit.ty(2)
crv4 = crv1 * irit.sc(0.5) * irit.tx((-0.5)) * irit.ty(1.6)
Exemplo n.º 15
0
    dc = irit.cderive(c)
    retval = (irit.ctangent(c, 0, 0) == irit.coerce(irit.ceval(
        dc, 0), irit.VECTOR_TYPE)) & (irit.ctangent(c, 0.1, 0) == irit.coerce(
            irit.ceval(dc, 0.1),
            irit.VECTOR_TYPE)) & (irit.ctangent(c, 0.3, 0) == irit.coerce(
                irit.ceval(dc, 0.3), irit.VECTOR_TYPE)) & (irit.ctangent(
                    c, 0.5, 0) == irit.coerce(irit.ceval(
                        dc, 0.5), irit.VECTOR_TYPE)) & (irit.ctangent(
                            c, 0.9, 0) == irit.coerce(irit.ceval(
                                dc, 0.9), irit.VECTOR_TYPE)) & (irit.ctangent(
                                    c, 1, 0) == irit.coerce(
                                        irit.ceval(dc, 1), irit.VECTOR_TYPE))
    return retval

irit.printf( "tangent evaluations for\n\trational - %d\n\tpolynomial - %d\n", irit.list( checktangenteval( irit.creparam( irit.circle( ( 0, 0, 0 ), 1 ), 0, 1 ) ),\
checktangenteval( irit.creparam( irit.pcircle( ( 0, 0, 0 ), 1 ), 0, 1 ) ) ) )

z = irit.iritstate("cmpobjeps", z)
irit.free(z)

#
#
#  Surface and Curve normals.
#

irit.save(
    "bspline4",
    irit.list(irit.cnormal(cb, 0), irit.cnormal(cb, 0.1),
              irit.cnormal(cb, 0.3), irit.cnormal(cb, 0.5),
              irit.cnormal(cb, 0.9), irit.cnormal(cb,
                                                  1), irit.snormal(sb, 1, 3),
Exemplo n.º 16
0
import math
import irit
#

#
#  A cork blug.
#
#                                                Gershon Elber, Dec 1999
#
#  Can you compute the volume of this thing!?
#

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.sc(0.4))

cork = irit.ruledsrf(irit.pcircle((0, 0, 0), 1),
                     irit.pcircle((0, 0, 0), 1) * irit.sx(0) * irit.tz(2))

irit.interact(
    irit.list(
        irit.GetViewMatrix(),
        cork * irit.rx((-90)) * irit.tx((-1.2)) * irit.ty(0.4),
        cork * irit.tx((-1.2)) * irit.ty((-1.2)),
        cork * irit.rx((-90)) * irit.ry(90) * irit.tx(1.2) * irit.ty(0.4),
        cork * save_mat * irit.tx(1.2) * irit.ty((-1.8))))

irit.save("corkplug", cork)

corkcross = irit.nth(irit.prisa(cork, 256, 1, irit.COL, (0, 0, 0), 1), 1)
irit.color(corkcross, irit.MAGENTA)
Exemplo n.º 17
0
                irit.coerce(kn, irit.VECTOR_TYPE) *
                irit.coerce(kn, irit.VECTOR_TYPE)))
        k2 = irit.FetchRealObject(irit.ccrvtreval(c, t))
        if (abs(k1 - k2) > 1e-05):
            irit.printf(
                "mismatch in curve curvature evaluation (%.13f vs. %.13f)\n",
                irit.list(k1, k2))
        t = t + dt


c = irit.circle((0, 0, 0), 2)
comparecurvaturecrvevals(c)
comparecurvaturecrvevals(irit.creparam(c, 0, 1000))
comparecurvaturecrvevals(irit.creparam(c, 0, 0.001))

c = irit.pcircle((0, 0, 0), 0.5)
comparecurvaturecrvevals(c)
comparecurvaturecrvevals(irit.creparam(c, 0, 1000))
comparecurvaturecrvevals(irit.creparam(c, 0, 0.001))

c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, (-0.168 ), 0.794, 0 ), \
                                 irit.ctlpt( irit.E2, (-0.118 ), 0.637 ), \
                                 irit.ctlpt( irit.E2, 0.071, 0.771 ), \
                                 irit.ctlpt( irit.E2, 0.237, 0.691 ), \
                                 irit.ctlpt( irit.E2, (-0.091 ), 0.452 ), \
                                 irit.ctlpt( irit.E2, 0.134, 0.039 ), \
                                 irit.ctlpt( irit.E2, 0.489, 0.223 ), \
                                 irit.ctlpt( irit.E2, 0.39, 0.439 ), \
                                 irit.ctlpt( irit.E2, 0.165, 0.187 ), \
                                 irit.ctlpt( irit.E2, 0.111, 0.439 ), \
                                 irit.ctlpt( irit.E2, 0.313, 0.529 ), \
Exemplo n.º 18
0
                                  irit.ctlpt( irit.E2, 0.423, (-0.00924 ) ), \
                                  irit.ctlpt( irit.E2, 0.198, (-0.192 ) ), \
                                  irit.ctlpt( irit.E2, 0.263, 0.376 ), \
                                  irit.ctlpt( irit.E2, 0.432, 0.478 ), \
                                  irit.ctlpt( irit.E2, 0.521, (-0.0762 ) ) ), irit.list( irit.KV_OPEN ) )
irit.color( c4, irit.MAGENTA )

c4a = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 0.53, 0.35, (-0.3 ) ), \
                                   irit.ctlpt( irit.E3, 0.423, (-0.01 ), 0.3 ), \
                                   irit.ctlpt( irit.E3, 0.198, (-0.19 ), 0.4 ), \
                                   irit.ctlpt( irit.E3, 0.263, 0.38, (-0.2 ) ), \
                                   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.pcircle( ( 0, 0, 0 ), 0.2 )
irit.color( c5, irit.GREEN )

pts = irit.nil(  )
i = 0
while ( i <= 20 ):
    irit.snoc(  irit.point( math.cos( 2 * math.pi * i/20 ) + irit.random( (-0.1 ), 0.1 ), \
							math.sin( 2 * math.pi * i/20 ) + irit.random( (-0.1 ), 0.1 ), \
							irit.random( (-0.1 ), 0.1 ) ), \
				pts )
    i = i + 1
c6 = irit.cbspline( 3, pts, irit.list( irit.KV_PERIODIC ) )
irit.free( pts )

c6 = irit.coerce( c6, irit.KV_OPEN )
irit.color( c6, irit.RED )
Exemplo n.º 19
0
d = irit.duality(irit.coerce(c, irit.KV_OPEN))
irit.color(d, irit.YELLOW)

irit.interact(irit.list(c, d))

#
#  An exact circle
#

c = irit.circle((0, 0, 0), 1.1)
d = irit.duality(irit.coerce(c, irit.KV_OPEN))
irit.color(d, irit.YELLOW)

irit.interact(irit.list(c, d, irit.GetAxes()))

c1 = irit.pcircle((0, 0, 0), 1.1)
d1 = irit.duality(irit.coerce(c1, irit.KV_OPEN))
irit.color(d1, irit.YELLOW)

irit.interact(irit.list(c, d, c1, d1, irit.GetAxes()))

#
#  A piecewise linear curve
#
c = irit.cbspline( 2, irit.list( irit.ctlpt( irit.E2, (-0.227 ), 0.243 ), \
                                 irit.ctlpt( irit.E2, (-0.0522 ), 0.203 ), \
                                 irit.ctlpt( irit.E2, (-0.151 ), (-0.0858 ) ), \
                                 irit.ctlpt( irit.E2, (-0.142 ), (-0.219 ) ), \
                                 irit.ctlpt( irit.E2, (-0.00121 ), (-0.288 ) ), \
                                 irit.ctlpt( irit.E2, 0.125, (-0.21 ) ), \
                                 irit.ctlpt( irit.E2, 0.143, (-0.0708 ) ), \
Exemplo n.º 20
0
all = irit.list(irit.GetAxes() * irit.sc(1.1), reflectlns, rf, s)
irit.interact(all)

irit.attrib(
    s, "rflctlines",
    irit.list((0, 0, 1),
              irit.list(((-3), 2, 0), ((-1.5), 2, 0), irit.point(0, 2, 0),
                        irit.point(1.5, 2, 0), irit.point(3, 2, 0))))
all = irit.list(reflectlns, s)
irit.interact(all)
irit.save("rflct2ln", all)

# ############################################################################

s = irit.surfprev(irit.cregion(irit.pcircle((0, 0, 0), 1), 1, 3) * irit.ry(90))
irit.color(s, irit.MAGENTA)

reflectlns = irit.nil()
x = (-3)
while (x <= 3):
    irit.snoc( irit.ctlpt( irit.E3, x, 2, (-10 ) ) + \
                irit.ctlpt( irit.E3, x, 2, 10 ), reflectlns )
    x = x + 1.5
irit.color(reflectlns, irit.CYAN)
irit.adwidth(reflectlns, 2)

irit.SetResolution(2)
rf = irit.rflctln(
    s, (0, 0, 1),
    irit.list(
Exemplo n.º 21
0
        if ( irit.dstptpt( irit.coerce( pt1, irit.POINT_TYPE ), 
						   irit.coerce( pt2, irit.POINT_TYPE ) ) > diam ):
            diam = irit.dstptpt( irit.coerce( pt1, irit.POINT_TYPE ), 
								 irit.coerce( pt2, irit.POINT_TYPE ) )
            diamline = pt1 + pt2
        irit.snoc( irit.list( pt1 + pt2, pt1 * irit.tx( 0 ), pt2 * irit.tx( 0 ) ), retval )
        i = i + 1
    irit.color( retval, irit.YELLOW )
    irit.color( diamline, irit.CYAN )
    irit.adwidth( diamline, 3 )
    irit.snoc( irit.list( diamline ), retval )
    return retval

# ############################################################################

c1 = irit.pcircle( ( 0.1, 0.2, 0.3 ), 0.7 ) * irit.sy( 0.5 )

apline1 = evalantipodalptsoncrv( c1 )

irit.interact( irit.list( irit.GetAxes(), apline1, c1 ) )

c2 = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0.707, 0.304 ), \
                                  irit.ctlpt( irit.E2, 0.317, (-0.1 ) ), \
                                  irit.ctlpt( irit.E2, (-0.052 ), 0.147 ), \
                                  irit.ctlpt( irit.E2, (-0.159 ), 0.682 ), \
                                  irit.ctlpt( irit.E2, (-0.592 ), 0.039 ), \
                                  irit.ctlpt( irit.E2, (-0.646 ), (-0.254 ) ), \
                                  irit.ctlpt( irit.E2, (-0.313 ), (-0.532 ) ), \
                                  irit.ctlpt( irit.E2, (-0.568 ), (-0.145 ) ), \
                                  irit.ctlpt( irit.E2, (-0.402 ), 0.336 ), \
                                  irit.ctlpt( irit.E2, (-0.272 ), 0.134 ), \
Exemplo n.º 22
0
irit.SetResolution(50)
bisectcrv = irit.contour(bisectsrf, irit.plane(0, 0, 1, epsilon))
irit.color(bisectcrv, irit.GREEN)
irit.adwidth(bisectcrv, 3)

irit.interact(irit.list(irit.GetAxes(), c1, c2, bisectcrv, bisectsrf))
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))
Exemplo n.º 23
0
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
Exemplo n.º 24
0
c1 = irit.cinterp(pl1, 3, 50, irit.GenIntObject(irit.PARAM_UNIFORM), 0)
c2 = irit.coerce(c1, irit.E3)

c1r1 = irit.knotremove(c1, 0.01)
irit.printf("size of c1 is %d and c1r1 is %d\n",
            irit.list(irit.SizeOf(c1), irit.SizeOf(c1r1)))
c1r2 = irit.coerce(c1r1, irit.E3)
irit.color(c1r2, irit.MAGENTA)
irit.adwidth(c1r2, 3)
irit.interact(irit.list(c1r2, c2))

irit.save("crv2rdc", irit.list(c1r2, c2))

# ############################################################################

c1 = irit.pcircle((0, 0, 0), 1)
c1r1 = irit.crefine( c1, 0, irit.list( 0.1, 0.3, 0.7, 1.5, 1.7, 1.7,\
1.7, 1.7, 2.3, 2.3, 2.7, 3.5,\
3.5, 3.5 ) )

c1r2 = irit.knotclean(c1r1)

irit.save("crv3rdc", irit.list(c1r2 == c1, c1r2))

# ############################################################################

c1 = irit.circle((0, 0, 0), 1)
c1r1 = irit.crefine( c1, 0, irit.list( 0.1, 0.3, 0.7, 1.5, 1.7, 1.7,\
1.7, 2.3, 2.3, 2.7, 3.5, 3.5,\
3.5 ) )
c1r2 = irit.knotclean(c1r1)
Exemplo n.º 25
0
a = (-2)
while (a <= 0):
    pt = (a, 0, 0)
    c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, (-0.2 ), (-1 ) ), \
                                   irit.ctlpt( irit.E3, 0, (-3.2 ), 0 ), \
                                   irit.ctlpt( irit.E3, 0, (-0.2 ), 1 ) ) )
    bisectsrf = irit.cbisector3d(irit.list(c1, pt), 0)
    display(c1, pt, bisectsrf)
    a = a + 0.005 * speed

# ############################################################################
#
#  A cubic
#

circ = irit.pcircle((0, 0, 0), 1) * irit.rz(90) * irit.ry((-90))
irit.ffcompat(c1, circ)

pt = (0, 0, 0)

a = 0
while (a <= 1):
    c1x = irit.cmorph(c1, circ, 0, a)
    bisectsrf = irit.cbisector3d(irit.list(c1x, pt), 0)
    display(c1x, pt, bisectsrf)
    a = a + 0.01 * speed

a = 0
while (a <= 0.9):
    pt = (0, a, 0)
    bisectsrf = irit.cbisector3d(irit.list(circ, pt), 0)
Exemplo n.º 26
0
import math
import irit
#

#
#  Examples of surface accessibility analysis.
#
#                                Gershon Elber, December 1999
#

# ############################################################################
#
#  Plane surface - sphere check surface example.
#

c = irit.cregion(irit.pcircle((0, 0, 0), 1), 1, 3) * irit.ry(90)

psphere = irit.surfprev(c) * irit.sc(0.3) * irit.tz(1)
irit.color(psphere, irit.YELLOW)

pln = 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 ) )
irit.color(pln, irit.RED)

pts = irit.saccess(pln, irit.GenRealObject(0), psphere, irit.GenRealObject(0),
                   0.1, 1e-005)

spts = irit.nil()
sptserr = irit.nil()
Exemplo n.º 27
0
irit.save( "warp2trv", all )

# ############################################################################
# 
#  Let the Genie come out of the teapot...
# 

teapot = teapotorig * irit.sc( 0.2 ) * irit.sx( (-1 ) ) * irit.rx( 90 ) * irit.rz( 180 )

s = irit.planesrf( (-1 ), (-1 ), 1, 1 ) * irit.sc( 1.7 )
discs = irit.list( s * irit.sc( 0.01 ) * irit.sx( 2 ) * irit.tx( 0.58 ) * irit.tz( 0.42 ), s * irit.sc( 0.01 ) * irit.sx( 2 ) * irit.tx( 0.62 ) * irit.tz( 0.46 ), s * irit.sc( 0.05 ) * irit.sx( 1.5 ) * irit.tx( 0.65 ) * irit.tz( 0.55 ), s * irit.sc( 0.07 ) * irit.sx( 1.5 ) * irit.tx( 0.7 ) * irit.tz( 0.7 ), s * irit.sc( 0.09 ) * irit.sx( 1.5 ) * irit.tx( 0.65 ) * irit.tz( 0.85 ), s * irit.sc( 0.08 ) * irit.sx( 1.5 ) * irit.tx( 0.7 ) * irit.tz( 1 ), s * irit.sc( 0.07 ) * irit.tx( 0.7 ) * irit.tz( 1.1 ) )
tv = irit.tfromsrfs( discs, 3, irit.KV_OPEN )

#  Create a refined cylinder to warp out of the teapot...

c = irit.creparam( irit.pcircle( ( 0.5, 0.5, 0.001 ), 0.45 ), 0, 1 )
srf = irit.extrude( c, ( 0, 0, 0.99 ), 0 )
srf = irit.srefine( irit.srefine( srf, irit.COL, 0, irit.list( 0.1, 0.2, 0.3, 0.4, 0.6, 0.7,\
0.8, 0.9 ) ), irit.ROW, 0, irit.list( 0.1, 0.2, 0.3, 0.4, 0.5, 0.6,\
0.7, 0.8, 0.9 ) )
warpedsrf = warpsurface( (-srf ), tv )
irit.attrib( warpedsrf, "ptexture", irit.GenStrObject("g.gif" ))

irit.view( irit.list( teapot, warpedsrf ), irit.ON )

irit.save( "warp3trv", all )
irit.pause()

# ############################################################################

irit.SetViewMatrix(  save_mat2)
Exemplo n.º 28
0
                                   irit.ctlpt( irit.E3, 0, (-0.1 ) - a, 0 ), \
                                   irit.ctlpt( irit.E3, 0, (-0.1 ), 1 ) ) )
    c2 = irit.cbezier( irit.list( \
                                   irit.ctlpt( irit.E3, (-1 ), 0.1, 0 ), \
                                   irit.ctlpt( irit.E3, 0, 2.1, 0 ), \
                                   irit.ctlpt( irit.E3, 1, 0.1, 0 ) ) )
    bisectsrf = irit.cbisector3d(irit.list(c1, c2), 1)
    display(c1, c2, bisectsrf)
    a = a + 0.02 * speed

# ############################################################################
#
#  A line and a circle
#

circ = irit.creparam(irit.pcircle((0, 0, 0), 1), 0, 1) * irit.rz(
    (-90)) * irit.ry(180)
irit.ffcompat(c2, circ)

a = 0
while (a <= 1):
    c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 0, (-1 ) ), \
                                   irit.ctlpt( irit.E3, 0, 0, 1 ) ) )
    c2x = irit.cmorph(c2, circ, 0, a)
    bisectsrf = irit.cbisector3d(irit.list(c1, c2x), 1)
    display(c1, c2x, bisectsrf)
    a = a + 0.01 * speed

# ############################################################################
#
#  A line and a circle (again)
Exemplo n.º 29
0
#
#  Case 5
#

c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-1 ), (-1 ), (-1 ) ), \
                              irit.ctlpt( irit.E3, (-0.5 ), 8, (-1 ) ), \
                              irit.ctlpt( irit.E3, 0, (-15 ), (-1 ) ), \
                              irit.ctlpt( irit.E3, 0.5, 8, (-1 ) ), \
                              irit.ctlpt( irit.E3, 1, (-1 ), (-1 ) ) ) )

c2 = c1 * irit.sc(0.7) * irit.tz(1.7)

r1 = irit.ruledsrf(c1, c2)
irit.awidth(r1, 0.007)

c1 = irit.pcircle((0, 0, 0), 0.3) * irit.tz(2)

c2 = c1 * irit.sc(0.5) * irit.tz((-3))

r2 = irit.ruledsrf(c1, c2) * irit.ry(90)
irit.awidth(r2, 0.007)

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), 50,
                 0), 1)
irit.color(c, irit.RED)
irit.adwidth(c, 3)
irit.awidth(c, 0.02)
irit.attrib(c, "gray", irit.GenRealObject(0.5))
Exemplo n.º 30
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  Simple knots.
#
#                                                Gershon Elber, 1997
#
cross = irit.pcircle((0, 0, 0), 0.1)

crv1 = irit.coerce( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-1 ), 0.9, 0 ), \
                                                 irit.ctlpt( irit.E3, 1, 0.9, 0 ), \
                                                 irit.ctlpt( irit.E3, 1, (-0.9 ), 0 ), \
                                                 irit.ctlpt( irit.E3, (-1 ), (-0.9 ), 0 ) ), irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN )
srf1 = irit.swpsclsrf(cross, crv1, irit.GenIntObject(1), irit.vector(0, 0, 1),
                      2)
irit.attrib(srf1, "color", irit.GenIntObject(4))

crv2 = irit.coerce( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-1.3 ), 0, 0.75 ), \
                                                 irit.ctlpt( irit.E3, 1.3, 0, 0.75 ), \
                                                 irit.ctlpt( irit.E3, 1.3, 0, (-0.75 ) ), \
                                                 irit.ctlpt( irit.E3, (-1.3 ), 0, (-0.75 ) ) ), irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN )
srf2 = irit.swpsclsrf(cross, crv2, irit.GenIntObject(1), irit.vector(0, 1, 0),
                      2)
irit.attrib(srf2, "color", irit.GenIntObject(2))

crv3 = irit.coerce( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0.5, 1.1 ), \
                                                 irit.ctlpt( irit.E3, 0, 0.5, (-1.1 ) ), \