Beispiel #1
0
def ant(scl):
    save_res = irit.GetResolution()
    bodyall = antbody()
    body = irit.nth(bodyall, 1)
    eyes = irit.nth(bodyall, 2)
    leg = antleg()
    llegs = irit.list(
        leg * irit.sc(1.1) * irit.sx(1.3) * irit.ry((-45)) * irit.trans(
            (0.1, 0, 1.02)),
        leg * irit.sc(1.3) * irit.ry(10) * irit.trans((0.1, 0.05, 1)),
        leg * irit.sc(1.2) * irit.sx(1.4) * irit.ry(40) * irit.trans(
            (0.1, 0.02, 0.95)))
    irit.SetResolution(20)
    irit.attrprop(llegs, "u_resolution", irit.GenRealObject(0.2))
    antennas = irit.list(
        antantenna() * irit.ry((-110)) * irit.trans(((-0.02), 0.2, 1.6)),
        antantenna() * irit.ry((-70)) * irit.trans((0.02, 0.2, 1.6)))
    irit.attrprop(antennas, "u_resolution", irit.GenRealObject(0.2))
    body = (body + irit.gpolygon(llegs, 1) + irit.gpolygon(llegs, 1) * irit.sx(
        (-1)) + irit.gpolygon(antennas, 1))
    irit.attrib(body, "rgb", irit.GenStrObject("255,50,50"))
    irit.SetResolution(save_res)
    retval = irit.list(
        body,
        eyes) * irit.sz(1.3) * irit.sc(1) * irit.ty(0.28785) * irit.rx(90)
    return retval
Beispiel #2
0
def antanim(scl):
    save_res = irit.GetResolution()
    bodyall = antbody()
    body = irit.nth(bodyall, 1)
    eyes = irit.nth(bodyall, 2)
    llegs = irit.list(
        antlleganim(1) * irit.sc(1.1) * irit.sx(1.3) * irit.ry(
            (-45)) * irit.trans((0.1, 0, 1.02)),
        antlleganim((-1)) * irit.sc(1.3) * irit.ry(10) * irit.trans(
            (0.1, 0.05, 1)),
        antlleganim(1) * irit.sc(1.2) * irit.sx(1.4) * irit.ry(40) *
        irit.trans((0.1, 0.02, 0.95)))
    rlegs = irit.list(
        antrleganim(
            (-1)) * irit.sc(1.1) * irit.sx(1.3) * irit.ry(45) * irit.trans(
                ((-0.1), 0, 1.02)),
        antrleganim(1) * irit.sc(1.3) * irit.ry((-10)) * irit.trans(
            ((-0.1), 0.05, 1)),
        antrleganim((-1)) * irit.sc(1.2) * irit.sx(1.4) * irit.ry(
            (-40)) * irit.trans(((-0.1), 0.02, 0.95)))
    irit.SetResolution(20)
    antennas = irit.list(
        antantenna() * irit.ry((-110)) * irit.trans(((-0.02), 0.2, 1.6)),
        antantenna() * irit.ry((-70)) * irit.trans((0.02, 0.2, 1.6)))
    irit.attrprop(antennas, "u_resolution", irit.GenRealObject(0.2))
    body = (body + irit.gpolygon(antennas, 1))
    irit.attrib(body, "rgb", irit.GenStrObject("255,50,50"))
    irit.SetResolution(save_res)
    retval = irit.list(
        body, llegs, rlegs,
        eyes) * irit.sz(1.3) * irit.sc(1) * irit.ty(0.28785) * irit.rx(90)
    mov_y = irit.creparam( irit.ctlpt( irit.E1, 0 ) + \
                            irit.ctlpt( irit.E1, (-1 ) ), 0, 1.2 )
    irit.attrib(retval, "animation", mov_y)
    return retval
Beispiel #3
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
Beispiel #4
0
def antrleganim(s):
    retval = antleg() * irit.ry(180)
    t = 0.2 * (s + 1) / 2
    rot_y = irit.creparam( irit.cbspline( 2, irit.list( irit.ctlpt( irit.E1, 13 * s ), \
                                                         irit.ctlpt( irit.E1, (-13 ) * s ), \
                                                         irit.ctlpt( irit.E1, (-13 ) * s ), \
                                                         irit.ctlpt( irit.E1, 13 * s ) ), irit.list( 0, 0, 1.3, 1.7, 3, 3 ) ),\
    0 + t, 1 + t )
    rot_z = irit.creparam( irit.cbspline( 2, irit.list( \
                                                         irit.ctlpt( irit.E1, 0 ), \
                                                         irit.ctlpt( irit.E1, 7 + 7 * s ), \
                                                         irit.ctlpt( irit.E1, 0 ), \
                                                         irit.ctlpt( irit.E1, 0 ), \
                                                         irit.ctlpt( irit.E1, 7 - 7 * s ), \
                                                         irit.ctlpt( irit.E1, 0 ) ), irit.list( irit.KV_OPEN ) ), 0 + t, 1 + t )
    irit.attrib(retval, "animation", irit.list(rot_z, rot_y))
    return retval
Beispiel #5
0
#
#                                        Gershon Elber, Oct 2002
#

oldcnvxpl2vrtices = irit.iritstate("cnvxpl2vrtcs", irit.GenRealObject(0))

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

c = irit.cbspline( 4, irit.list( irit.ctlpt( irit.E2, 0, 0.15 ), \
                                 irit.ctlpt( irit.E2, 0.25, 0.15 ), \
                                 irit.ctlpt( irit.E2, 0.52, 0.4 ), \
                                 irit.ctlpt( irit.E2, 0.85, 0.3 ), \
                                 irit.ctlpt( irit.E2, 0.85, 0 ) ), irit.list( irit.KV_OPEN ) )
c = ((-c) + c * irit.sx((-1)))

srf8a = irit.surfprev(c * irit.ry(90)) * irit.sx(0.9) * irit.homomat(
    irit.list(irit.list(1, 0, 0.2, 0), irit.list(0, 1, 0, 0),
              irit.list(0, 0, 1, 0), irit.list(0, 0, 0, 1))) * irit.homomat(
                  irit.list(irit.list(1, 0, 0, 0), irit.list(0, 1, 0.2, 0),
                            irit.list(0, 0, 1, 0), irit.list(0, 0, 0, 1)))

irit.color(srf8a, irit.YELLOW)
irit.awidth(srf8a, 0.001)

k = irit.srfkernel(srf8a, 5, 3)

irit.interact(irit.list(srf8a, k))
irit.save("srf1krnl", irit.list(k, srf8a))

# ############################################################################
Beispiel #6
0
irit.free(arc8)
irit.free(arc9)

cross1 = (prof1 + prof4 * irit.tx(60))
cross2 = (prof1 + prof2 * irit.tx(50) + prof4 * irit.tx(80))

irit.free(prof1)
irit.free(prof1a)
irit.free(prof2)
irit.free(prof2a)
irit.free(prof3)
irit.free(prof3a)
irit.free(prof4)
irit.free(prof4a)

leg1 = irit.surfrev(cross1 * irit.ry((-90)))
leg2 = irit.surfrev(cross2 * irit.ry((-90)))
irit.free(cross1)
irit.free(cross2)

legs = irit.list(leg1, leg1 * irit.tx(80), leg2 * irit.trans((0, 190, 0)),
                 leg2 * irit.trans((80, 190, 0)))
irit.attrib(legs, "rgb", irit.GenStrObject("244,164,96"))
irit.free(leg1)
irit.free(leg2)

skel = irit.list( irit.box( ( (-1 ), (-1 ), 25 ), 80, 2, 20 ),\
irit.box( ( (-1 ), (-1 ), 25 ), 2, 190, 20 ),\
irit.box( ( (-1 ), 189, 25 ), 80, 2, 20 ),\
irit.box( ( 79, (-1 ), 25 ), 2, 190, 20 ),\
irit.box( ( (-1 ), 90, 25 ), 80, 2, 20 ) )
def interact( none ):
    irit.viewdclear(  )
    irit.viewobj( none )
    irit.pause(  )
echosrc2 = irit.iritstate( "echosource", echosrc2 )
irit.free( echosrc2 )

# 
#  Define the trivarate warping function.
# 

s1 = irit.ruledsrf( irit.ctlpt( irit.E3, 0.5, 0, 0 ) + \
                    irit.ctlpt( irit.E3, 1.5, 0, 0 ), \
                    irit.ctlpt( irit.E3, 0.5, 1.2, 0 ) + \
                    irit.ctlpt( irit.E3, 1.5, 1.2, 0 ) )
tv = irit.tfromsrfs( irit.list( s1, s1 * irit.ry( 30 ), s1 * irit.ry( 60 ), s1 * irit.ry( 90 ), s1 * irit.ry( 120 ), s1 * irit.ry( 150 ), s1 * irit.ry( 180 ) ), 3, irit.KV_OPEN )
tv = irit.treparam( irit.treparam( tv, irit.COL, 0, 0.5 ), irit.ROW, 0.2,\
0.8 )
irit.awidth( tv, 0.001 )
irit.free( s1 )

# 
#  Define our warping function.
# 

def warpsurface( srf, tv ):
    usize = irit.FetchRealObject(irit.nth( irit.ffmsize( srf ), 1 ))
    vsize = irit.FetchRealObject(irit.nth( irit.ffmsize( srf ), 2 ))
    clr = irit.getattr( srf, "color" )
    i = 0
    while ( i <= usize * vsize - 1 ):
Beispiel #8
0
bladeside = irit.ruledsrf(sec1, sec2)

bladetop = irit.ruledsrf(irit.cregion(sec2, 0, 0.5),
                         (-irit.cregion(sec2, 0.5, 1)))

blademain = irit.list(bladeside, bladetop) * irit.tz(0.2)
irit.free(bladeside)
irit.free(bladetop)

bladefillet = irit.sfromcrvs(
    irit.list(sec1 * irit.sc(1.35) * irit.sy(1.5) * irit.tz((-0.1)), sec1,
              sec1 * irit.tz(0.2)), 3, irit.KV_OPEN)
irit.free(sec1)
irit.free(sec2)

blade = irit.list(blademain, bladefillet) * irit.tx(0.1) * irit.ry(
    90) * irit.sc(0.285) * irit.tx(0.636) * irit.rx(20)
irit.attrib(blade, "rgb", irit.GenStrObject("128,128,128"))

irit.free(blademain)
irit.free(bladefillet)

#
#  The Base
#

basesec = ( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.1, 0.055 ), \
                                         irit.ctlpt( irit.E2, 0.4, 0.052 ), \
                                         irit.ctlpt( irit.E2, 0.435, 0.06 ), \
                                         irit.ctlpt( irit.E2, 0.44, 0.24 ), \
                                         irit.ctlpt( irit.E2, 0.47, 0.3 ), \
                                         irit.ctlpt( irit.E2, 0.62, 0.29 ), \
              (diag, 0, diag)), irit.FALSE)
item1 = (itemaux2 - diagpoly - diagpoly * irit.sy((-1)) - diagpoly * irit.sz(
    (-1)) - diagpoly * irit.sz((-1)) * irit.sy((-1)))
item1 = irit.convex(item1)
irit.color(item1, irit.RED)

item2 = item1 * irit.sx((-1))
irit.color(item2, irit.MAGENTA)

item3 = item1 * irit.rx(90) * irit.rz(90)
irit.color(item3, irit.GREEN)

item4 = item1 * irit.rx(90) * irit.rz((-90))
irit.color(item4, irit.YELLOW)

item5 = item1 * irit.rx(90) * irit.ry(90)
irit.color(item5, irit.BLUE)

item6 = item1 * irit.rx(90) * irit.ry((-90))
irit.color(item6, irit.CYAN)

grp1 = irit.list(item2, item3, item5)
grp2 = irit.list(item1, item4, item6)

scl = irit.creparam( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E1, 1 ), \
                                                  irit.ctlpt( irit.E1, 1 ), \
                                                  irit.ctlpt( irit.E1, 5 ) ), irit.list( irit.KV_OPEN ) ), 0, 1 )

mov_xyz = irit.creparam( irit.cbspline( 4, irit.list( irit.ctlpt( irit.E3, 0, 0, (-3 ) ), \
                                                      irit.ctlpt( irit.E3, (-1 ), 1, (-3 ) ), \
                                                      irit.ctlpt( irit.E3, (-0.5 ), 0.5, (-0.5 ) ), \
Beispiel #10
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  Some examples of using reflection lines.
#
#                        Gershon Elber, October 1999
#

save_res = irit.GetResolution()
save_mat = irit.GetViewMatrix()

irit.SetViewMatrix(irit.rx(2) * irit.ry(2) * irit.sc(0.5))
irit.viewobj(irit.GetViewMatrix())

irit.SetViewMatrix(save_mat)

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

s = 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.rx( 90 )
s = irit.sraise(irit.sraise(s, irit.ROW, 3), irit.COL, 3)
s = (-irit.seditpt(s, irit.ctlpt(irit.E3, 0, 1, 0), 1, 1))
irit.color(s, irit.MAGENTA)

reflectlns = irit.nil()
Beispiel #11
0
displayobjobjhdres( c3, c4, eps, 0 )

displayobjobjhdres( c3, c4, eps, 1 )

displayobjobjhdres( c4, c3, eps, 1 )

displayobjobjhdres( c4, c4a * irit.tx( (-0.5 ) ), eps, 0 )

displayobjobjhdres( c2, c4a * irit.tx( (-0.5 ) ), eps, 0 )

displayobjobjhdres( c2, c4a * irit.sx( (-3 ) ) * irit.tx( 0.5 ), eps, 0 )

displayobjobjhdres( c2, c2a * irit.sx( (-3 ) ) * irit.tx( 0.5 ), eps, 0 )

displayobjobjhdres( c5, c5 * irit.sx( 0.7 ) * irit.sy( 0.95 ) * irit.ry( 20 ), eps, 0 )

displayobjobjhdres( c6, c6 * irit.rz( 20 ), eps, 0 )

irit.save( "hausdorf", glblres )
#  view( GlblRes, 1 );

# ############################################################################
irit.free( glblres )

iprod = irit.iritstate( "bspprodmethod", iprod )
irit.free( iprod )
irit.free( c1 )
irit.free( c2 )
irit.free( c2a )
irit.free( c3 )
Beispiel #12
0
displayobjobjmdres(c3, c3 * irit.tx((-0.5)), 1e-010)

displayobjobjmdres(c4, c4 * irit.rz(180), 1e-010)

displayobjobjmdres(c4, c4a * irit.tx((-0.5)), 1e-010)

displayobjobjmdres(s2, c4a * irit.tx((-0.5)), 1e-010)

displayobjobjmdres(s2, c4a * irit.sx((-3)) * irit.tx(0.5), 1e-010)

displayobjobjmdres(s2, c2a * irit.sx((-3)) * irit.tx(0.5), 1e-010)

displayobjobjmdres(s2, s2 * irit.sx((-3)) * irit.tx(0.5), 1e-010)

displayobjobjmdres(s2,
                   s2 * irit.sx((-3)) * irit.tx(0.5) * irit.ry((-10)), 1e-010)

displayobjobjmdres(s2, s2 * irit.sx((-3)) * irit.tx(0.5) * irit.ry(10), 1e-010)

displayobjobjmdres(s3, s3 * irit.sx(3) * irit.tx(0.5) * irit.ry(10), 1e-010)

displayobjobjmdres(s3 * irit.rx(90),
                   s3 * irit.sx(3) * irit.tx(0.5) * irit.ry(10), 1e-010)

displayobjobjmdres(s3 * irit.rx(90) * irit.ry(120),
                   s3 * irit.sx(3) * irit.tx(0.5) * irit.ry(10), 1e-010)

displayobjobjmdres(
    s3 * irit.sx(3) * irit.tx(0.5) * irit.ry((-60)) * irit.tx(
        (-0.5)) * irit.tz((-1.2)),
    s3 * irit.rx(90) * irit.ry(120), 1e-010)
Beispiel #13
0
#
#  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)

corkprisa = irit.prisa(cork, 256, 1, irit.COL, (0, 0, 0), 0)
irit.color(corkprisa, irit.RED)

all = irit.list(corkprisa * irit.ty(
    (-1.3)), corkcross * irit.ty(1)) * irit.sc(0.35)

irit.interact(all)
irit.save("cork_prs", all)
Beispiel #14
0
a2 = irit.arrow3d(irit.point(1, 0, 0), irit.vector((-1.5), 0.5, 1), 1, 0.02,
                  0.2, 0.05)
a3 = irit.arrow3d(  irit.point( 0, 0.6, 0.8 ), irit.vector( 0.5, 0.7, 0.3 ), 0.5, 0.01, 0.2,\
0.02 )

irit.interact(irit.list(irit.GetAxes(), a1, a2, a3))

irit.save( "macros8", irit.list( v, irit.tx( 1 ) * \
         irit.ty( 1 ) * \
         irit.tz( 1 ) * \
         irit.sx( 2 ) * \
         irit.sy( 2 ) * \
         irit.sz( 3 ) * \
         irit.sc( 3 ) * \
         irit.rx( 10 ) * \
         irit.ry( 20 ) * \
         irit.rz( (-30 ) ),
       irit.rotz2vec( v ) * w,
       irit.rotz2vec( irit.vector( 1, 0, 0 ) ),
       irit.rotz2vec( irit.vector( 0, 1, 0 ) ),
       irit.rotz2vec( irit.vector( 0, 0, 1 ) ),
       irit.rotvec2z( v ),
       w, a1, a2, a3 ) )

irit.free(v)
irit.free(w)

irit.free(a1)
irit.free(a2)
irit.free(a3)
Beispiel #15
0
#This is an IRIT script and as such requires both math and irit import:
#
import math
import irit
#

#
#  Some examples of K-orthotomics (See Fundamentals of Computer Aided
#  Geometric Design, by J. Hoschek and D. Lasser.)
#
#                        Gershon Elber, August 1996.
#

save_mat = irit.GetViewMatrix()
view_mat3d = save_mat * irit.ry(15) * irit.sc(0.6)
view_mat2d = irit.sc(0.6)

irit.viewobj(view_mat2d)
irit.viewstate("widthlines", 1)

# ############################################################################
#
#  A cubic curve
#

pt = irit.point(0, 0.35, 0)
irit.color(pt, irit.CYAN)

#
#  Modifying the curve.
#
Beispiel #16
0
#

irit.SetResolution(10)

s1 = irit.sphere((0.2, 0.2, 0.8), 0.18)
irit.color(s1, irit.YELLOW)
s2 = irit.sphere((0.75, 0.25, 0.16667), 0.12) * irit.sz(3)
irit.color(s2, irit.MAGENTA)
c1 = irit.maxedgelen( irit.triangl( irit.cylin( ( 0.15, 0.85, 0.01 ), ( 0, 0, 0.98 ), 0.1, 3 ), 1 ),\
0.2 )
irit.color(c1, irit.CYAN)
c2 = irit.maxedgelen( irit.triangl( irit.cylin( ( 0.85, 0.85, 0.01 ), ( 0, 0, 0.98 ), 0.1, 3 ), 1 ),\
0.2 )
irit.color(c2, irit.CYAN)

genie = irit.list( teapotorig * irit.sc( 0.15 ) * irit.ry( (-90 ) ) * irit.trans( ( 0.5, 0.4, 0.47 ) ), s1, s2, c1,\
c2 )

b = irit.box((0, 0, 0), 1, 1, 1)
irit.attrib(b, "transp", irit.GenRealObject(0.5))

irit.interact(irit.list(irit.GetAxes(), b, genie))

wgenie = warpobj(genie, tv)
irit.interact(irit.list(teapot, wgenie, tv))

irit.save("genitpot", irit.list(teapot, wgenie, tv))

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

irit.SetViewMatrix(save_mat2)
Beispiel #17
0
                                           1e-005), 0)
printtest("srf of revolution", irit.isgeom(extr, irit.GEOM_SRF_OF_REV, 1e-005),
          0)

crv = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0.1, 0, 0 ), \
                               irit.ctlpt( irit.E3, 1, 0, 0 ), \
                               irit.ctlpt( irit.E3, 1, 0, 1 ) ) )

#  too slow for regular testing.

#srev = surfrev( crv );
#PrintTest( "Srf of revolution", isgeom( srev, irit.GEOM_SRF_OF_REV, 1e-10 ), 1 );
#

srev = irit.surfprev(crv) * irit.tx(1) * irit.ty(2) * irit.sc(0.5) * irit.rx(
    10) * irit.ry(20) * irit.rz(30)
printtest("srf of revolution", irit.isgeom(srev, irit.GEOM_SRF_OF_REV, 0.1), 1)
printtest("srf of revolution", irit.isgeom(srev, irit.GEOM_SRF_OF_REV, 0.01),
          0)

crv = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0.3, 0, 0 ), \
                                   irit.ctlpt( irit.E3, 0.3, 0, 0.05 ), \
                                   irit.ctlpt( irit.E3, 0.1, 0, 0.05 ), \
                                   irit.ctlpt( irit.E3, 0.1, 0, 0.4 ), \
                                   irit.ctlpt( irit.E3, 0.5, 0, 0.4 ), \
                                   irit.ctlpt( irit.E3, 0.6, 0, 0.8 ) ), irit.list( irit.KV_OPEN ) )
srev = irit.surfprev(crv) * irit.tx((-1)) * irit.tz(
    (-5)) * irit.sc(0.25) * irit.rx(55) * irit.ry((-220)) * irit.rz((-130))
printtest("srf of revolution", irit.isgeom(srev, irit.GEOM_SRF_OF_REV, 0.1), 1)
printtest("srf of revolution", irit.isgeom(srev, irit.GEOM_SRF_OF_REV, 0.001),
          0)
Beispiel #18
0
wingplane1 = irit.ruledsrf( irit.ctlpt( irit.E3, (-1 ), (-1 ), 0 ) + \
                            irit.ctlpt( irit.E3, (-1 ), 1, 0 ), \
                            irit.ctlpt( irit.E3, 1, (-1 ), 0 ) + \
                            irit.ctlpt( irit.E3, 1, 1, 0 ) )
wingplane2 = (-wingplane1) * irit.tz(0.1)
irit.attrib(wingplane1, "rgb", irit.GenStrObject("10, 10, 10"))
irit.attrib(wingplane2, "rgb", irit.GenStrObject("255, 255, 255"))
irit.attrib(wingframe, "rgb", irit.GenStrObject("100, 100, 100"))

wingbase = irit.list(wingframe, wingplane1, wingplane2)
irit.free(wingframe)
irit.free(wingplane1)
irit.free(wingplane2)

wing = wingbase * irit.tx(1) * irit.ty(1) * irit.sc(0.11) * irit.rz(
    45) * irit.ry(90) * irit.tz(2.1) * irit.ty(0.1)
wings = irit.list(wing, wing * irit.rz(90), wing * irit.rz(180),
                  wing * irit.rz(270))
irit.free(wing)

wingbasesec = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-0.1 ), 0, 2.1 ), \
                                           irit.ctlpt( irit.E3, (-0.02 ), 0, 2.1 ), \
                                           irit.ctlpt( irit.E3, (-0.02 ), 0, 2.2 ), \
                                           irit.ctlpt( irit.E3, (-0.02 ), 0, 2.21 ), \
                                           irit.ctlpt( irit.E3, (-0.001 ), 0, 2.21 ) ), irit.list( irit.KV_OPEN ) )
wingbase = irit.surfrev(wingbasesec)
irit.free(wingbasesec)
irit.attrib(wingbase, "transp", irit.GenRealObject(0.95))
irit.color(wingbase, irit.WHITE)

all = irit.list(body, base1, niddle1, base2, wings, wingbase)
Beispiel #19
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
Beispiel #20
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()
Beispiel #21
0
sclfctr = 0.6
sqr2 = sqr1 * irit.sc((-sclfctr)) * irit.tz(sclfctr * 2)

trap1 = irit.poly(
    irit.list(
        irit.point((-1), (-1), 1) * irit.sc(sclfctr),
        irit.point((-1), 1, 1) * irit.sc(sclfctr), irit.point((-1), 1, 1),
        irit.point((-1), (-1), 1)), 0)
trap2 = trap1 * irit.rz(180)

prim1 = irit.list(sqr1, sqr2, trap1, trap2)
prim2 = prim1 * irit.rx(90)
prim3 = prim1 * irit.rx((-90))

baseunitaux = irit.list(prim1, prim2, prim3,
                        trap1 * irit.rx(90) * irit.ry((-90)),
                        trap2 * irit.rx((-90)) * irit.ry(90))
baseunit = irit.list(baseunitaux, baseunitaux * irit.ty(2.35),
                     irit.box(
                         ((-0.15), 1, (-0.5)), 0.3, 0.35, 1)) * irit.sc(0.5)
irit.free(baseunitaux)

baseunit1 = baseunit
irit.color(baseunit1, irit.RED)

baseunit2 = baseunit * irit.tx(1.175)
irit.color(baseunit2, irit.GREEN)

baseunit3 = baseunit * irit.rx(180) * irit.rz(90)
irit.color(baseunit3, irit.CYAN)
Beispiel #22
0
                                  irit.ctlpt( irit.E3, 0, 0, 1 ), \
                                  irit.ctlpt( irit.E3, 0, 0.747, 0.761 ), \
                                  irit.ctlpt( irit.E3, 0, 1.07, (-0.0984 ) ), \
                                  irit.ctlpt( irit.E3, 0, 0.762, (-0.631 ) ), \
                                  irit.ctlpt( irit.E3, 0, 0.483, (-0.896 ) ), \
                                  irit.ctlpt( irit.E3, 0, 0.279, (-1.54 ) ), \
                                  irit.ctlpt( irit.E3, 0, 0, (-1.78 ) ) ), irit.list( irit.KV_OPEN ) )

crvs = irit.list(
    c1b * irit.sc(0.001) * irit.trans((1.02, 0, 0.18)),
    c1b * irit.sc(0.07) * irit.sz(0.4) * irit.trans((1.02, 0, 0.18)),
    c1b * irit.sc(0.18) * irit.sz(0.3) * irit.trans((0.8, 0, 0.16)),
    c1b * irit.sc(0.27) * irit.sz(0.5) * irit.trans((0.6, 0, 0.16)),
    c1b * irit.sc(0.43) * irit.sz(0.64) * irit.trans((0.3, 0, 0.2)),
    c1b * irit.sc(0.54) * irit.sz(0.7) * irit.trans((0, 0, 0.23)),
    c1b * irit.sc(0.52) * irit.ry(25) * irit.sz(0.76) * irit.trans(
        ((-0.34), 0, 0.26)),
    c1b * irit.sc(0.41) * irit.sz(1.13) * irit.ry(50) * irit.trans(
        ((-0.6), 0, 0.32)),
    c1b * irit.sc(0.3) * irit.sz(1.3) * irit.ry(65) * irit.trans(
        ((-0.7), 0, 0.42)),
    c1b * irit.sc(0.16) * irit.sz(1.4) * irit.ry(75) * irit.trans(
        ((-0.71), 0, 0.5)),
    c1a * irit.sc(0.16) * irit.sz(1.4) * irit.ry(75) * irit.trans(
        ((-0.72), 0, 0.53)),
    c1a * irit.sc(0.2) * irit.sz(2) * irit.ry(75) * irit.trans(
        ((-0.8), 0, 0.6)),
    c1a * irit.sc(0.2) * irit.sz(2) * irit.ry(75) * irit.trans(
        ((-0.82), 0, 0.66)),
    c1a * irit.sc(0.2) * irit.sz(1.2) * irit.ry(75) * irit.trans(
        ((-0.79), 0, 0.8)),
Beispiel #23
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)
Beispiel #24
0
#  Logo frame
#

hplogo = irit.ruledsrf( irit.ctlpt( irit.E3, 6, (-0.01 ), 6.4 ) + \
                        irit.ctlpt( irit.E3, 7.7, (-0.01 ), 6.4 ), \
                        irit.ctlpt( irit.E3, 6, (-0.01 ), 6.8 ) + \
                        irit.ctlpt( irit.E3, 7.7, (-0.01 ), 6.8 ) )
irit.attrib(hplogo, "rgb", irit.GenStrObject("0,0,255"))

#
#  On-off button
#

irit.SetResolution(4)
onoff = irit.con2((0, (-0.1), 0), (0, 0.3, 0), 0.2, 0.1,
                  3) * irit.ry(45) * irit.sz(1.5) * irit.tx(0.2) * irit.tz(0.7)
irit.SetResolution(20)

base = (base - onoff)

onoff = irit.box((0.135, 0, 0.6), 0.135, 0.2, 0.2)

topfeed = irit.extrude( irit.cbezier( irit.list( irit.ctlpt( irit.E3, 2, 0.51, 6.2 ), \
                                                 irit.ctlpt( irit.E3, 3.7, 0.51, 7 ), \
                                                 irit.ctlpt( irit.E3, 4.5, 0.51, 7.5 ), \
                                                 irit.ctlpt( irit.E3, 5.39, 0.51, 7.5 ) ) ) + \
                                                 irit.ctlpt( irit.E3, 5.39, 0.51, 6.01 ) + \
                                                 irit.ctlpt( irit.E3, 2, 0.51, 6.01 ) + \
                                                 irit.ctlpt( irit.E3, 2, 0.51, 6.2 ), ( 0, 3.98, 0 ), 3 )

drawer1 = irit.ruledsrf( irit.ctlpt( irit.E3, 3.5, 0.38, 0.56 ) + \
Beispiel #25
0
stick1 = (irit.box(((-0.5), 0, (-3)), 1, 1, 6) - irit.box(
    ((-1), (-0.5), 1), 2, 1, 1))
irit.attrib(stick1, "rgb", irit.GenStrObject("255, 0, 0"))

stick2 = (irit.box(((-0.5), 0, (-3)), 1, (-1), 6) - irit.box(
    ((-1), (-0.5), (-2)), 2, 1, 3))
irit.attrib(stick2, "rgb", irit.GenStrObject("255, 100, 0"))

stick3 = (irit.box(((-3), (-0.5), (-1)), 6, 1, 1) - irit.box(
    ((-2), (-1), (-0.5)), 1.75, 2, 1) - irit.box(
        (0.25, (-1), (-0.5)), 1.75, 2, 1) - irit.box(
            ((-0.5), 0, (-1)), 1, 2, 2))
irit.attrib(stick3, "rgb", irit.GenStrObject("255, 0, 100"))

stick4 = stick3 * irit.ry(180)
irit.attrib(stick4, "rgb", irit.GenStrObject("255, 100, 100"))

stick5 = (irit.box((0, (-3), (-0.5)), 1, 6, 1) - irit.box((0.5, (-2), (-1)),
                                                          (-1), 4, 2))
irit.attrib(stick5, "rgb", irit.GenStrObject("255, 100, 0"))

stick6 = stick5 * irit.ry(180)
irit.attrib(stick6, "rgb", irit.GenStrObject("255, 50, 50"))

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

bar1 = ( irit.box( ( (-3 ), (-0.5 ), 1 ), 6, 1, 2 ) - \
   (irit.box( ( (-0.5 ), (-1 ), 1 ), 1, 1, 3 ) + \
    irit.box( ( (-0.5 ), (-1 ), 2 ), 1, 3, 2 ) ))
Beispiel #26
0
pt2 = irit.point(irit.random((-0.5), 0.5), irit.random((-0.5), 0.5), 0)
pt3 = irit.point(irit.random((-0.5), 0.5), irit.random((-0.5), 0.5), 0)

pl = irit.poly(irit.list(pt1, pt2, pt3), irit.FALSE)
irit.color(pl, irit.GREEN)

ellimp = irit.ellipse3pt(irit.Fetch3TupleObject(pt1),
                         irit.Fetch3TupleObject(pt2),
                         irit.Fetch3TupleObject(pt3), 0)
ell = irit.conicsec(ellimp, 0, 0, 0)
irit.color(ell, irit.YELLOW)
irit.adwidth(ell, 2)

i = 10
while (i <= n):
    m = irit.rz(i) * irit.rx(i * 2) * irit.ry(i * 3) * irit.sc(
        i / 360.0) * irit.tx(i / 360.0 - 1) * irit.tz(i / 720.0 - 0.5)
    ell3imp = irit.cnc2quad(ellimp, i / 1000.0)
    ell3imp = irit.implctrans(2, ell3imp, m)
    ell3 = irit.quadric(ell3imp)
    irit.color(ell3, irit.MAGENTA)
    all = irit.list(irit.GetAxes(), ell3, ell)
    irit.view(all, irit.ON)
    irit.milisleep(100)
    i = i + 10

irit.save("ellips4", all)

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

irit.viewstate("widthlines", 0)
Beispiel #27
0
ri = irit.iritstate("randominit", irit.GenRealObject(1964))
#  Seed-initiate the randomizer,
irit.free(ri)

size = 0.25

v1 = (0, 0, 0)
v2 = (size * 3, 0, 0)
v3 = (size * 3, size * 3, 0)
v4 = (0, size * 3, 0)
plaux = irit.poly(irit.list(v1, v2, v3, v4, v1), irit.TRUE)

cubebbox = irit.list(plaux, plaux * irit.tz(size * 3), plaux * irit.rx(90),
                     plaux * irit.rx(90) * irit.ty(size * 3),
                     plaux * irit.ry((-90)),
                     plaux * irit.ry((-90)) * irit.tx(size * 3))
irit.attrib(cubebbox, "rgb", irit.GenStrObject("255, 255, 255"))
irit.free(plaux)


def cubeat(x, y, z):
    retval = irit.box((x - size / 2.0, y - size / 2.0, z - size / 2.0), size,
                      size, size)
    irit.attrib(
        retval, "rgb",
        irit.GenStrObject(
            str(int(irit.random(64, 255))) + "," +
            str(int(irit.random(64, 255))) + "," +
            str(int(irit.random(64, 255)))))
    return retval
Beispiel #28
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)
#
Beispiel #29
0
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))

irit.interact(irit.list(r1, r2, c))

irit.save("rrint5a", irit.list(r1, r2, c))
Beispiel #30
0
while (i <= 5):
    x1 = x1 ^ (x1 * irit.tx(irit.random(
        (-2), 2)) * irit.ty(irit.random(
            (-2), 2)) * irit.tz(irit.random((-0.002), 0.002)))
    i = i + 1

i = 0
while (i <= 10):
    irit.printf(
        "%d), error = %f\n",
        irit.list(
            i,
            irit.nth(
                irit.fitpmodel(
                    x1 * irit.rx(irit.random(
                        (-90), 90)) * irit.ry(irit.random(
                            (-90), 90)) * irit.tz(irit.random((-2), 2)), 0,
                    1e-005, 100), 1)))
    i = i + 1

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

irit.save("prim_fit", irit.list(planefit, spfit, cylfit, conefit))
irit.pause()

irit.free(x1)
irit.free(x2)
irit.free(planefit)
irit.free(spfit)
irit.free(cylfit)
irit.free(conefit)