Beispiel #1
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 #2
0
def makebboxunit(obj):
    b = irit.bbox(obj)
    xmin = irit.FetchRealObjecy(irit.nth(b, 1))
    xmax = irit.nth(b, 2)
    ymin = irit.nth(b, 3)
    ymax = irit.nth(b, 4)
    retval = obj * irit.tx((-xmin)) * irit.ty(
        (-ymin)) * irit.sx(1.0 / (xmax - xmin)) * irit.sy(1.0 / (ymax - ymin))
    return retval
Beispiel #3
0
printtest("coerce", mv,
          irit.coerce(irit.coerce(mv, irit.BEZIER_TYPE), irit.POWER_TYPE))

mv = irit.mvexplicit(4, "a^2 * b^2 + 5 * a * b * c + c^3 - 5 * d * c^3")
printtest("coerce", mv,
          irit.coerce(irit.coerce(mv, irit.BEZIER_TYPE), irit.POWER_TYPE))

mv = irit.mvexplicit(2, "a * 5 * b - b^3 * 3 * a^3")
printtest("coerce", mv,
          irit.coerce(irit.coerce(mv, irit.BEZIER_TYPE), irit.POWER_TYPE))

mv = irit.mvexplicit(1, "a^3 + 3 * a^2 +  15 * a - 7.5")
printtest("coerce", mv,
          irit.coerce(irit.coerce(mv, irit.BEZIER_TYPE), irit.POWER_TYPE))

s1 = s * irit.sx(1) * irit.sy(2) * irit.sz(0.3) * irit.ry(55)
mv1 = irit.coerce(
    irit.tfromsrfs(
        irit.list(s1,
                  s1 * irit.tx(0.25) * irit.ty(0.5) * irit.tz(0.8),
                  s1 * irit.tz(2)), 3, irit.KV_PERIODIC), irit.MULTIVAR_TYPE)
printtest("coerce",
          irit.meval(irit.coerce(mv1, irit.KV_FLOAT), irit.list(0, 0, 0)),
          irit.meval(mv1, irit.list(0, 0, 0)))
printtest("coerce",
          irit.meval(irit.coerce(mv1, irit.KV_FLOAT), irit.list(1, 1, 3)),
          irit.meval(mv1, irit.list(1, 1, 3)))

mv1 = irit.coerce(
    irit.tfromsrfs(
        irit.list(s1,
Beispiel #4
0
circ = irit.circle((0, 0, 0), 3)

arc0 = irit.cregion(circ, 0, 1.5)
arc1 = irit.cregion(circ, 0.5, 1.5)
arc2 = irit.cregion(circ, 1, 1.5)
arc3 = irit.cregion(circ, 0.5, 1)
arc4 = irit.cregion(circ, 0.7, 1.5)
arc5 = irit.cregion(circ, 0.7, 1.3)
arc6 = irit.cregion(circ, 0.7, 1)
arc7 = irit.cregion(circ, 1, 1.3)
arc8 = irit.cregion(circ, 0.5, 1.3)
arc9 = irit.cregion(circ, 0.7, 1.5)
irit.free(circ)

prof1 = ((-arc1) + (-arc2) * irit.tx(4.6))
prof1a = prof1 * irit.sy(2)

prof2 = ((-arc3) + (-arc4) * irit.tx(4.6) + (-arc5) * irit.tx(7.6) +
         (-arc5) * irit.tx(10.6) + (-arc5) * irit.tx(13.6) +
         (-arc5) * irit.tx(16.6))
prof2a = prof2 * irit.sy(2) * irit.trans(((-2), (-4), 0))

prof3 = ((-arc6) + (-arc8) * irit.tx(3) + (-arc1) * irit.tx(7.6) +
         (-arc9) * irit.tx(12.3) + (-arc7) * irit.tx(15.3))
prof3a = prof3 * irit.sy(2) * irit.trans(((-2), (-8), 0))

prof4 = ((-arc6) + (-arc8) * irit.tx(3) + (-arc1) * irit.tx(7.6) +
         (-arc0) * irit.tx(12.3))
prof4a = prof4 * irit.sy(2) * irit.trans(((-2), (-12), 0))

irit.free(arc0)
Beispiel #5
0
#

#
#  The Blade
#

sec1 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, (-0.525 ), (-0.041 ), 0 ), \
                                    irit.ctlpt( irit.E2, (-0.0935 ), 0.102 ), \
                                    irit.ctlpt( irit.E2, 0.487, 0.14 ), \
                                    irit.ctlpt( irit.E2, 0.882, 0.112 ), \
                                    irit.ctlpt( irit.E2, 0.878, 0.198 ), \
                                    irit.ctlpt( irit.E2, 0.559, 0.403 ), \
                                    irit.ctlpt( irit.E2, (-0.183 ), 0.252 ), \
                                    irit.ctlpt( irit.E2, (-0.525 ), (-0.04 ) ) ), irit.list( irit.KV_OPEN ) ) * irit.tx( (-0.2 ) ) * irit.ty( (-0.2 ) )

sec2 = sec1 * irit.sy(0.5) * irit.sc(1.2) * irit.tz(2.5) * irit.rz(30)

bladeside = irit.ruledsrf(sec1, sec2)

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

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

bladefillet = irit.sfromcrvs(
    irit.list(sec1 * irit.sc(1.35) * irit.sy(1.5) * irit.tz((-0.1)), sec1,
              sec1 * irit.tz(0.2)), 3, irit.KV_OPEN)
irit.free(sec1)
irit.free(sec2)
Beispiel #6
0
irit.free(all2)
irit.free(all3)

irit.save("crv5arng", all)

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

c2 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, (-0.2 ), 0.5 ), \
                                  irit.ctlpt( irit.E2, 0.3, 0.2 ), \
                                  irit.ctlpt( irit.E2, (-0.2 ), (-0.5 ) ), \
                                  irit.ctlpt( irit.E2, 0.1, 0.2 ) ), irit.list( irit.KV_PERIODIC ) )
c2 = irit.coerce(c2, irit.KV_OPEN)

crvs = irit.list(c2 * irit.ty(0.3) * irit.tx((-0.2)),
                 c2 * irit.rz(140) * irit.tx(0.4) * irit.ty((-0.5)),
                 c1 * irit.sy(3) * irit.rz(160) * irit.tx(0.1) * irit.ty(0.8),
                 c1 * irit.sy(2) * irit.rz(230) * irit.ty(0.35),
                 c2 * irit.rz((-10)) * irit.tx(0.6) * irit.ty(0.2),
                 c2 * irit.rz(110) * irit.ty((-0.61)),
                 c2 * irit.rz(110) * irit.tx(0.25) * irit.ty(0.6))
irit.color(crvs, irit.RED)

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

all = irit.nil()
x = (-1)
while (x <= 1):
    pt = irit.point(x, x * x, 0)
    radiallowenv = irit.carrangmnt(crvs, 1e-010, 4, pt) * irit.tz((-0.2))
    irit.color(radiallowenv, irit.YELLOW)
    irit.adwidth(radiallowenv, 3)
        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 ), \
Beispiel #8
0
            "principal curvatures at (u, v) = (%f, %f) equal %.9f and %.9f\n",
            irit.list(irit.coord(umb, 0), irit.coord(umb, 1),
                      irit.nth(crvtr, 1), irit.nth(crvtr, 3)))
        irit.snoc(
            irit.seval(srf, irit.FetchRealObject(irit.coord(umb, 0)),
                       irit.FetchRealObject(irit.coord(umb, 1))), retval)
        i = i + 1
    irit.color(retval, irit.YELLOW)
    return retval


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

s = irit.surfprev(
    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)
    (-0.8)) * irit.ty(0.5)

offsets1 = irit.nil()
i = (-5)
while (i <= 5):
    irit.snoc(irit.symbsum(crv1, arc1match * irit.sc(i / 10.0)), offsets1)
    i = i + 1
irit.color(offsets1, irit.YELLOW)
all1b = irit.list(arc1, crv1,
                  offsets1) * irit.sc(0.7) * irit.tx(0.8) * irit.ty(0.5)

#
#  Example 2.
#

crv2 = crv1 * irit.sy(0.8)
irit.color(crv2, irit.RED)
irit.attrib(crv2, "width", irit.GenRealObject(0.01))

arc2 = irit.cregion(circ, 0, 2)
irit.ffcompat(crv2, arc2)
irit.color(arc2, irit.GREEN)
irit.attrib(arc2, "width", irit.GenRealObject(0.01))

irit.interact(irit.list(crv2, arc2))

arc2match = irit.ffmatch( crv2, arc2, 50, 200, 2, 0,\
1 )

offsets2nomatch = irit.nil()
i = (-5)
Beispiel #10
0
#
sqrt2 = math.sqrt(2)
eps = 0.015
rad = 0.3
len = (rad + eps) * 2
itemaux1 = irit.box(
    ((-rad) / sqrt2, (-rad) / sqrt2,
     (-len)), rad * 2 / sqrt2, rad * 2 / sqrt2, len * 2) * irit.rz(45)
itemaux2 = (
    itemaux1 * irit.tx(rad) - itemaux1 * irit.rotx(90) * irit.tz(rad + eps) -
    itemaux1 * irit.rotx(90) * irit.tz((-rad) - eps)) * irit.tx(eps / 2)
diag = (len + eps)
diagpoly = irit.poly(
    irit.list((diag, diag, 0), ((-diag), diag, 0), ((-diag), 0, diag),
              (diag, 0, diag)), irit.FALSE)
item1 = (itemaux2 - diagpoly - diagpoly * irit.sy((-1)) - diagpoly * irit.sz(
    (-1)) - diagpoly * irit.sz((-1)) * irit.sy((-1)))
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)
Beispiel #11
0
              c * irit.sc(0.001) * irit.tz(2)), 4,
    irit.KV_OPEN)) * irit.sc(0.3)
irit.color(srf8b, irit.YELLOW)
irit.awidth(srf8b, 0.001)

k = irit.srfkernel(srf8b, 40, 10)

irit.interact(irit.list(srf8b, k))
irit.save("srf2krnl", irit.list(k, srf8b))

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

c = irit.pcircle((0, 0, 0), 1)
srf8c = (-irit.sfromcrvs(
    irit.list(c * irit.sc(0.001) * irit.tz((-1)),
              c * irit.sc(0.4) * irit.sy(0.2) * irit.tz((-1)),
              c * irit.sc(0.4) * irit.sy(0.2), c * irit.sc(1),
              c * irit.sc(1) * irit.tz(1),
              c * irit.sc(0.4) * irit.sx(0.2) * irit.tz(1),
              c * irit.sc(0.4) * irit.sx(0.2) * irit.tz(2),
              c * irit.sc(0.001) * irit.tz(2)), 4,
    irit.KV_OPEN)) * irit.sc(0.3)
irit.color(srf8c, irit.YELLOW)
irit.awidth(srf8c, 0.001)

k = irit.srfkernel(srf8c, 20, 5)

irit.interact(irit.list(srf8c, k))
irit.save("srf3krnl", irit.list(k, srf8c))

# ############################################################################
Beispiel #12
0
tsrf2ap = irit.gpolyline(tsrf2a, 0)
irit.color(tsrf2ap, irit.RED)
tsrf2bp = irit.gpolyline(tsrf2b, 0)
irit.color(tsrf2bp, irit.GREEN)
irit.interact(irit.list(tsrf2ap, tsrf2bp))
irit.save("trimsrf2", irit.list(tsrf2ap, tsrf2bp))

#  tsrf2ap = gpolygon( tsrf2a, off );
#  color( tsrf2ap, red );
#  tsrf2bp = gpolygon( tsrf2b, off );
#  color( tsrf2bp, green );
#  interact( list( tsrf2ap, tsrf2bp ) );
#  free( tsrf2ap );
#  free( tsrf2bp );

crvs3 = irit.list(tcrv1 * irit.sy(0.3),
                  tcrv2 * irit.sy(0.3) * irit.ty(0.3),
                  tcrv3 * irit.sy(0.3) * irit.ty(0.6))
tsrf3a = irit.trimsrf(sb2, crvs3, 0)
irit.color(tsrf3a, irit.YELLOW)
tsrf3b = irit.trimsrf(sb2, crvs3, 1) * irit.tz(0.1)
irit.interact(tsrf3b)
irit.color(tsrf3b, irit.GREEN)
irit.interact(irit.list(tsrf3a, tsrf3b))
irit.free(crvs3)
irit.free(tcrv1)
irit.free(tcrv2)
irit.free(tcrv3)

#
#  Constructor using TrmSrfs
Beispiel #13
0

ptpln = irit.nil()
i = 1
while (i <= 15):
    irit.snoc(
        irit.point(irit.random((-1), 1), irit.random((-1), 1),
                   irit.random((-eps), eps)), ptpln)
    i = i + 1

printfitresult("bilinear fit: plane xy (15 pts):",
               irit.analyfit(ptpln, ptpln, 0, 1))

printfitresult("bilinear fit: plane xy sclx 2 scly 3 (15 pts):",
               irit.analyfit(ptpln,
                             ptpln * irit.sx(2) * irit.sy(3), 0, 1))

printfitresult("bilinear fit: plane xy trasnaled x=1, y=2 (15 pts):",
               irit.analyfit(ptpln,
                             ptpln * irit.tx(1) * irit.ty(2), 0, 1))

printfitresult(
    "bilinear fit: plane xy rotated 45 along x (15 pts):",
    irit.analyfit(ptpln,
                  ptpln * irit.sy(math.sqrt(2)) * irit.rx(45), 0, 1))

printfitresult(
    "bilinear fit: plane xy rotated 45 along x, 75 along y (15 pts):",
    irit.analyfit(ptpln,
                  ptpln * irit.sy(math.sqrt(2)) * irit.rx(45) * irit.ry(75), 0,
                  1))
Beispiel #14
0
def makecrosssection(crv):
    retval = (crv + (-crv) * irit.sy((-1)))
    return retval
Beispiel #15
0
fuseintakeout = irit.sfromcrvs(
    irit.list(crosssection32, crosssection31, crosssection30), 3, irit.KV_OPEN)
irit.attrib(fuseintakeout, "rgb", irit.GenStrObject("128, 128, 255"))
irit.attrib(fuseintakeout, "texture", irit.GenStrObject("camouf"))

c33 = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 4.6, 0, (-0.45 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0.15, (-0.45 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0.28, (-0.35 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0.28, (-0.25 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0.15, (-0.12 ) ), \
                                   irit.ctlpt( irit.E3, 4.6, 0, (-0.12 ) ) ), irit.list( irit.KV_OPEN ) )
crosssection33 = makecrosssection(c33)

fuseintakein = irit.list(irit.ruledsrf(crosssection32, crosssection33),
                         irit.ruledsrf(c33 * irit.sy((-1)), c33))
irit.attrib(fuseintakein, "rgb", irit.GenStrObject("64, 64, 64"))

irit.free(c30)
irit.free(c31)
irit.free(c32)
irit.free(c33)
irit.free(crosssection30)
irit.free(crosssection31)
irit.free(crosssection32)
irit.free(crosssection33)

#
#  Cockpit
#
Beispiel #16
0
# #######################################################################
#
#  Curve matching example: Duck
#

c = irit.cbezier( irit.list( irit.ctlpt( irit.E3, 0, 0, (-1.3 ) ), \
                             irit.ctlpt( irit.E3, 0, (-1.5 ), (-1.25 ) ), \
                             irit.ctlpt( irit.E3, 0, (-0.9 ), 1.1 ), \
                             irit.ctlpt( irit.E3, 0, 0.9, 1.15 ), \
                             irit.ctlpt( irit.E3, 0, 1.5, (-1.25 ) ), \
                             irit.ctlpt( irit.E3, 0, 0, (-1.3 ) ) ) )

irit.view(c, irit.ON)

c = c * irit.sy(1.6) * irit.sz(1.3)

r1 = irit.coerce( irit.cpower( irit.list( irit.ctlpt( irit.E1, 0 ), \
                                          irit.ctlpt( irit.E1, 0.25 ), \
                                          irit.ctlpt( irit.E1, 0.75 ) ) ), irit.BEZIER_TYPE )
r2 = irit.coerce( irit.cpower( irit.list( irit.ctlpt( irit.E1, 0 ), \
                                          irit.ctlpt( irit.E1, 1.5 ), \
                                          irit.ctlpt( irit.E1, (-0.5 ) ) ) ), irit.BEZIER_TYPE )
c1a = irit.compose(c, r1)
c1b = irit.compose(c, r2)

c2 = irit.cbspline( 6, irit.list( irit.ctlpt( irit.E3, 0, (-0.279 ), (-1.54 ) ), \
                                  irit.ctlpt( irit.E3, 0, (-0.483 ), (-0.896 ) ), \
                                  irit.ctlpt( irit.E3, 0, (-0.762 ), (-0.631 ) ), \
                                  irit.ctlpt( irit.E3, 0, (-1.07 ), (-0.0984 ) ), \
                                  irit.ctlpt( irit.E3, 0, (-0.747 ), 0.761 ), \
Beispiel #17
0
#
#  Top round control.
#

button = irit.coerce( irit.cbspline( 3, irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \
                                                   irit.ctlpt( irit.E3, 2, 0, 0 ), \
                                                   irit.ctlpt( irit.E3, 3, 0, 0 ), \
                                                   irit.ctlpt( irit.E3, 3, 1.4, 0 ), \
                                                   irit.ctlpt( irit.E3, 2, 1.4, 0 ), \
                                                   irit.ctlpt( irit.E3, 0, 1.4, 0 ), \
                                                   irit.ctlpt( irit.E3, (-1 ), 1.4, 0 ), \
                                                   irit.ctlpt( irit.E3, (-1 ), 0, 0 ) ), irit.list( irit.KV_PERIODIC ) ), irit.KV_OPEN ) * irit.tx( (-1 ) ) * irit.ty( (-0.7 ) )
button = irit.sfromcrvs(
    irit.list(button * irit.tz((-1)), button, button * irit.tz(0.6),
              button * irit.sx(0.7) * irit.sy(0.001) * irit.tz(0.6)), 3,
    irit.KV_OPEN) * irit.sc(0.1)
irit.attrib(button, "rgb", irit.GenStrObject("155,155,155"))

redbutton = irit.cylin((0, 0, 0), (0, 0, 0.1), 0.1, 3)
irit.attrib(redbutton, "rgb", irit.GenStrObject("255,0,0"))

greenbutton = irit.cylin((0, 0, 0), (0, 0, 0.1), 0.075, 3)
irit.attrib(greenbutton, "rgb", irit.GenStrObject("0,255,0"))

buttons = irit.list(
    button * irit.rx(8) * irit.ty((-0.5)) * irit.tx(0.3) * irit.tz(7.55),
    button * irit.rx(8) * irit.ty((-0.5)) * irit.tx(0.75) * irit.tz(7.55),
    button * irit.rx(8) * irit.ty((-0.5)) * irit.tx(1.25) * irit.tz(7.55),
    button * irit.rx(8) * irit.ty((-0.5)) * irit.tx(1.7) * irit.tz(7.55),
    redbutton * irit.rx(8) * irit.tx(0.2) * irit.tz(7.55),
Beispiel #18
0
                    irit.point((-0.030076), 0.34839, 0.936867),
                    irit.point(0.591636, (-0.37821), 0.711986))

c = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0.8, 1 ), \
                                 irit.ctlpt( irit.E2, 1, 0.8 ), \
                                 irit.ctlpt( irit.E2, 1, (-0.8 ) ), \
                                 irit.ctlpt( irit.E2, 0.8, (-1 ) ), \
                                 irit.ctlpt( irit.E2, (-0.8 ), (-1 ) ), \
                                 irit.ctlpt( irit.E2, (-1 ), (-0.8 ) ), \
                                 irit.ctlpt( irit.E2, (-1 ), 0.8 ), \
                                 irit.ctlpt( irit.E2, (-0.8 ), 1 ) ), irit.list( irit.KV_PERIODIC ) )

s = irit.sfromcrvs(
    irit.list(c,
              c * irit.sc(0.7) * irit.tz(0.65),
              c * irit.sx(0.65) * irit.sy(0.75) * irit.tz(0.7),
              c * irit.sc(1.7) * irit.tz(1.1), c * irit.tz(1.5)), 3,
    irit.KV_OPEN)
irit.color(s, irit.YELLOW)

irit.SetResolution(70)

silhs = irit.nil()
#  Loop with step one for slower, more complete result.
#  printf( "Processing vector %d\\n", list( i ) ):
i = 1
while (i <= irit.SizeOf(sphdirs)):
    irit.snoc(
        irit.silhouette(
            s,
            irit.Fetch3TupleObject(
Beispiel #19
0
#
#  A sphere not centered at the origin
#

s = irit.spheresrf(1) * irit.tx(0.6)
d = irit.duality(s)
irit.color(d, irit.YELLOW)

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

#
#  An ellipsoid
#

s = irit.spheresrf(1.1) * irit.sx(2) * irit.sy(1.2)
d = irit.duality(s)
irit.color(d, irit.YELLOW)

view_mat1 = irit.GetViewMatrix() * irit.sc(0.5)
irit.interact(irit.list(s, d, irit.GetAxes(), view_mat1))

#
#  A ruled surface
#

s = irit.ruledsrf( irit.ctlpt( irit.E3, (-1 ), (-1 ), 0.2 ) + \
                   irit.ctlpt( irit.E3, (-1 ), 1, (-0.2 ) ), \
                   irit.ctlpt( irit.E3, 1, (-1 ), (-0.2 ) ) + \
                   irit.ctlpt( irit.E3, 1, 1, 0.2 ) ) * irit.tz( 0.35 )
d = irit.duality(s)
Beispiel #20
0
w = irit.rotvec2z(v) * v

a1 = irit.arrow3d(irit.point(0, 0, 0), irit.vector(1, 1, 1), 1.5, 0.05, 0.5,
                  0.1)
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)
Beispiel #21
0
    irit.printf(
        "rz alignment: length of intersection curve %d, time = %f sec.\n",
        irit.list(irit.SizeOf(irit.nth(irit.nth(inter, 1), 1)), tm))


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

s1 = irit.sbezier( irit.list( irit.list( irit.ctlpt( irit.E3, 0, 0, 0 ), \
                                         irit.ctlpt( irit.E3, 0.05, 0.2, 0.1 ), \
                                         irit.ctlpt( irit.E3, 0.1, 0.05, 0.2 ) ), irit.list( \
                                         irit.ctlpt( irit.E3, 0.1, (-0.2 ), 0 ), \
                                         irit.ctlpt( irit.E3, 0.15, 0.05, 0.1 ), \
                                         irit.ctlpt( irit.E3, 0.2, (-0.1 ), 0.2 ) ), irit.list( \
                                         irit.ctlpt( irit.E3, 0.2, 0, 0 ), \
                                         irit.ctlpt( irit.E3, 0.25, 0.2, 0.1 ), \
                                         irit.ctlpt( irit.E3, 0.3, 0.05, 0.2 ) ) ) ) * irit.sc( 4 ) * irit.sy( 0.3 )
irit.color(s1, irit.RED)

s2 = s1 * irit.rx(4) * irit.rz(2)
irit.color(s2, irit.BLUE)

testssi(s1, s2, 0.1)
testssi(s1, s2, 0.03)

s1 = s1 * irit.sy(0.1)
s2 = s2 * irit.sy(0.1)
irit.color(s1, irit.RED)
irit.color(s2, irit.BLUE)

testssi(s1, s2, 0.1)
testssi(s1, s2, 0.03)
Beispiel #22
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 #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
Beispiel #24
0
epsilon = 1e-006
save_res = irit.GetResolution()
save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.sc(0.7))
irit.viewobj(irit.GetViewMatrix())

irit.viewstate("depthcue", 0)

# ############################################################################
#
#  Two quadratic curves
#
c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E2, (-0.5 ), 0.1 ), \
                              irit.ctlpt( irit.E2, 0, 0.3 ), \
                              irit.ctlpt( irit.E2, 0.5, 0.7 ) ) )
c2 = irit.coerce(c1 * irit.sy((-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.color(bisectsrf, irit.RED)

irit.SetResolution(25)
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))
Beispiel #25
0
#
sqrt2 = math.sqrt(2)
eps = 0.015
rad = 0.3
len = (rad + eps) * 2
itemaux1 = irit.box(
    ((-rad) / sqrt2, (-rad) / sqrt2,
     (-len)), rad * 2 / sqrt2, rad * 2 / sqrt2, len * 2) * irit.rz(45)
itemaux2 = (
    itemaux1 * irit.tx(rad) - itemaux1 * irit.rotx(90) * irit.tz(rad + eps) -
    itemaux1 * irit.rotx(90) * irit.tz((-rad) - eps)) * irit.tx(eps / 2)
diag = (len + eps)
diagpoly = irit.poly(
    irit.list((diag, diag, 0), ((-diag), diag, 0), ((-diag), 0, diag),
              (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)
Beispiel #26
0
def snaket( t ):
    p =  irit.point( 0, 0, 0 )
    ct = irit.cbspline( 3, irit.list( p * \
									  ctx( 0 + t, 1.5 ) * \
									  irit.ty( 0.22 ), 
									  p * \
									  ctx( 0 + t, 1.5 ) * \
									  irit.ty( 0.22 ), 
									  p * \
									  ctx( 0.3 + t, 1.5 ) * \
									  irit.ty( 0.17 ) * \
									  irit.tz( 0.3 ), 
									  p * \
									  ctx( 2 + t, 1.5 ) * \
									  irit.ty( (-0.06 ) ) * \
									  irit.tz( 2 ), 
									  p * \
									  ctx( 4 + t, 1.5 ) * \
									  irit.ty( (-0.06 ) ) * \
									  irit.tz( 4 ), 
									  p * \
									  ctx( 6 + t, 1.5 ) * \
									  irit.ty( (-0.06 ) ) * \
									  irit.tz( 6 ), 
									  p * \
									  ctx( 8 + t, 2.5 ) * \
									  irit.ty( (-0.065 ) ) * \
									  irit.tz( 8 ), 
									  p * \
									  ctx( 10 + t, 2.5 ) * \
									  irit.ty( (-0.07 ) ) * \
									  irit.tz( 10 ), 
									  p * \
									  ctx( 12 + t, 2.5 ) * \
									  irit.ty( (-0.075 ) ) * \
									  irit.tz( 12 ), 
									  p * \
									  ctx( 14 + t, 1.5 ) * \
									  irit.ty( (-0.08 ) ) * \
									  irit.tz( 14 ), 
									  p * \
									  ctx( 16 + t, 1.5 ) * \
									  irit.ty( (-0.09 ) ) * \
									  irit.tz( 16 ), 
									  p * \
									  ctx( 18 + t, 1.5 ) * 
									  irit.ty( (-0.1 ) ) * 
									  irit.tz( 18 ), 
									  p * \
									  irit.ty( (-0.1 ) ) * \
									  irit.tz( 20 ), 
									  p * \
									  irit.ty( (-0.1 ) ) * \
									  irit.tz( 21 ) ), 
									  irit.list( irit.KV_OPEN ) )
    c = irit.circle( ( 0, 0, 0 ), 0.36 ) * irit.rz( (-90 ) )
    scalecrv = irit.cbspline( 3, irit.list( irit.ctlpt( irit.E2, 0, 0.001 ), \
                                             irit.ctlpt( irit.E2, 0.1, 0.1 ), \
                                             irit.ctlpt( irit.E2, 0.2, 0.4 ), \
                                             irit.ctlpt( irit.E2, 0.3, 0.7 ), \
                                             irit.ctlpt( irit.E2, 0.4, 0.8 ), \
                                             irit.ctlpt( irit.E2, 0.5, 0.9 ), \
                                             irit.ctlpt( irit.E2, 0.6, 0.95 ), \
                                             irit.ctlpt( irit.E2, 0.7, 1 ), \
                                             irit.ctlpt( irit.E2, 0.8, 1 ) ), irit.list( irit.KV_OPEN ) )
    s1 = irit.swpsclsrf( c, ct, scalecrv, irit.vector( 0, 1, 0 ), 1 )
    irit.attrib( s1, "ptexture", irit.GenStrObject("snake2.gif,1,30" ))
    s2 = irit.sfromcrvs( irit.list( c * \
									irit.ty( (-0.1 ) ) * \
									irit.tz( 21 ), 
									c * \
									irit.ty( (-0.1 ) ) * \
									irit.tz( 22 ), 
									c * \
									irit.ty( (-0.14 ) ) * \
									irit.sx( 2.2 ) * \
									irit.sy( 1.2 ) * \
									irit.tz( 23 ), 
									c * \
									irit.ty( (-0.14 ) ) * \
									irit.sx( 2.2 ) * \
									irit.sy( 1.2 ) * \
									irit.tz( 24 ), 
									c * \
									irit.sy( 0.9 ) * \
									irit.ty( (-0.1 ) ) * \
									irit.sx( 1.2 ) * \
									irit.tz( 25 ), 
									c * \
									irit.ty( (-0.1 ) ) * \
									irit.sc( 0.001 ) * \
									irit.tz( 25 ) ), 
									3, 
									irit.KV_OPEN )
    irit.attrib( s2, "ptexture", irit.GenStrObject("snake2.gif,1,5" ))
    eyes = irit.list( irit.sphere( ( 0.42, (-0.35 ), 24.5 ), 0.1 ), irit.sphere( ( (-0.42 ), (-0.35 ), 24.5 ), 0.1 ) )
    irit.color( eyes, irit.BLACK )
    retval = irit.list( s1, s2, eyes ) * irit.rx( (-90 ) ) * irit.tz( 0.261 )
    return retval
Beispiel #27
0
    "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()

# ############################################################################
#
#  A quadratic Bezier and a (exact rational) ellipse.
#

c1 = irit.cbezier( irit.list( irit.ctlpt( irit.E3, (-2 ), 0, (-1 ) ), \
                              irit.ctlpt( irit.E3, (-3 ), 0, 0 ), \
                              irit.ctlpt( irit.E3, (-2 ), 0, 1 ) ) )
c2 = irit.circle((0, 0, 0), 1) * irit.sy(2)

c2 = irit.coerce(c2, 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):
    bisectsrf = irit.calphasector(irit.list(c1, c2), t)
    irit.color(bisectsrf, irit.GREEN)
    irit.view(irit.list(c1, c2, bisectsrf), irit.ON)
    t = t + 0.2

irit.save(
Beispiel #28
0
                                 irit.ctlpt( irit.E2, 5.569, (-0.845 ) ), \
                                 irit.ctlpt( irit.E2, 6.914, (-2.508 ) ), \
                                 irit.ctlpt( irit.E2, 11.147, (-1.629 ) ), \
                                 irit.ctlpt( irit.E2, 8.565, (-0.453 ) ), \
                                 irit.ctlpt( irit.E2, 4.533, 1.283 ), \
                                 irit.ctlpt( irit.E2, 8.031, 2.972 ), \
                                 irit.ctlpt( irit.E2, 9.304, 4.314 ), \
                                 irit.ctlpt( irit.E2, 8.252, 6.532 ), \
                                 irit.ctlpt( irit.E2, 5.942, 5.176 ), \
                                 irit.ctlpt( irit.E2, 5.483, 1.597 ), \
                                 irit.ctlpt( irit.E2, 3.427, 2.095 ) ), irit.list( irit.KV_PERIODIC ) ) * irit.sc( 0.1 ) * irit.tx( (-0.5 ) ) * irit.ty( (-0.2 ) )

crvtr = irit.cfncrvtr(c, 1000, 2, 1)

crvtr2d = irit.coerce(crvtr, irit.E2) * irit.rz(90) * irit.sx(
    (-1)) * irit.sy(0.005)
irit.color(crvtr2d, irit.YELLOW)

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

c2 = rigidmotionpos(irit.cfncrvtr(crvtr, 0.001, 3, 0), c)
irit.color(c2, irit.YELLOW)

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

irit.save("crvtrrc1", irit.list(c, c2, crvtr))

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

crvtr = irit.cfncrvtr(c, 100, 2, 1)
Beispiel #29
0
    else:
        res = "failed"
    all3 = irit.list(irit.nth(bb, 1), irit.nth(bb, 2), res)
    irit.printf("projection on srf2nrml bound from %8.5lf to %8.5lf  (%s)\n",
                all3)
    irit.pause()
    retval = irit.list(all1, all2, all3)
    return retval


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


crv1a = irit.cbezier( irit.list( irit.ctlpt( irit.E1, 0.2 ), \
                                 irit.ctlpt( irit.E2, 0.5, 4 ), \
                                 irit.ctlpt( irit.E2, 1.3, 0.05 ) ) ) * irit.sy( 0.2 )
crv2a = irit.cbezier( irit.list( \
                                 irit.ctlpt( irit.E1, (-0.2 ) ), \
                                 irit.ctlpt( irit.E2, 0.25, 1.9 ), \
                                 irit.ctlpt( irit.E2, 1.3, 0.05 ) ) ) * irit.ty( 0.3 ) * irit.sx( 1.5 )
crv1b = irit.cbezier( irit.list( \
                                 irit.ctlpt( irit.E2, 0.2, (-0.5 ) ), \
                                 irit.ctlpt( irit.E2, 0.5, 4 ), \
                                 irit.ctlpt( irit.E2, 1.3, (-0.45 ) ) ) ) * irit.sy( 0.2 )
crv2b = irit.cbezier( irit.list( \
                                 irit.ctlpt( irit.E2, (-0 ), (-0.5 ) ), \
                                 irit.ctlpt( irit.E2, 0.25, 1.09 ), \
                                 irit.ctlpt( irit.E2, 1.1, (-0.5 ) ) ) ) * irit.ty( 0.3 ) * irit.sx( 1.5 )
irit.save(
    "dist2ff1",
    irit.list(testccdistfunc(crv1a, crv2a, irit.nil()),
Beispiel #30
0
irit.color(s2, irit.GREEN)

i = testinter(s1, s2)

all = irit.list(s1, s2, i)

irit.interact(all)

irit.save("ssi18", all)

#
#  19. This is between two quadratic Bspline surfaces.
#

s1 = irit.spheresrf(1) * irit.sc(0.9) * irit.sx(0.5)
s2 = irit.spheresrf(1) * irit.sc(0.8) * irit.sy(0.5)

irit.color(s1, irit.RED)
irit.color(s2, irit.GREEN)

i = testinter(s1, s2)

all = irit.list(s1, s2, i)

irit.interact(all)

irit.save("ssi19", all)

#
#  20. Two bi-quadratic surfaces with one intersecting curve and one point of
#  inter.