예제 #1
0
def makealpha( a, clr ):
    aa = ( 2 * a - 1 )/float(a * a)
    bb = (-irit.sqr( ( 1 - a )/float(a) ) )
    alp = irit.quadric( irit.list( aa, bb, 1, 0, 0, 0,\
    (-2 ), 0, 0, 1 ) )
    alp1 = irit.sregion( irit.sregion( alp, irit.ROW, (-5 ), 0.45 ), irit.COL, 0,\
    200 )
    alp1 = irit.smoebius( irit.smoebius( alp1, 0, irit.COL ), 0, irit.ROW )
    alp2 = irit.sregion( irit.sregion( alp, irit.ROW, (-5 ), 0.45 ), irit.COL, (-200 ),\
    0 )
    alp2 = irit.smoebius( irit.smoebius( alp2, 0, irit.COL ), 0, irit.ROW )
    retval = irit.list( alp1, alp2 )
    irit.color( retval, clr )
    irit.adwidth( retval, 3 )
    return retval
예제 #2
0
def linetancirccircaux(x0, y0, r0, x1, y1, r1):
    qa = (irit.sqr(y1 - y0) + irit.sqr(x0 - x1))
    qb = ((-2) * (y1 - y0) * (y1 * r0 - y0 * r1) - 2 * (x0 - x1) *
          (x0 * r1 - x1 * r0))
    qc = (irit.sqr(y1 * r0 - y0 * r1) + irit.sqr(x0 * r1 - x1 * r0) -
          irit.sqr(x0 * y1 - x1 * y0))
    dsc = (irit.sqr(qb) - 4 * qa * qc)
    if (dsc < 0):
        retval = irit.nil()
    else:
        retval = irit.list(
            makelinefromc(((-qb) + math.sqrt(dsc)) / (2.0 * qa), x0, y0, r0,
                          x1, y1, r1),
            makelinefromc(((-qb) - math.sqrt(dsc)) / (2.0 * qa), x0, y0, r0,
                          x1, y1, r1))
    return retval
예제 #3
0
#

n = 10

i = 1
while (i <= n):
    pt1 = irit.point(irit.random((-0.5), 0.5), irit.random((-0.5), 0.5), 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)
    cntr = (pt1 + pt2 + pt3) * irit.sc(1 / 3.0)
    dpt1 = pt1 - cntr
    dpt2 = pt2 - cntr
    dpt3 = pt3 - cntr
    n00 = (irit.sqr(irit.coord(dpt1, 0)) + irit.sqr(irit.coord(dpt2, 0)) +
           irit.sqr(irit.coord(dpt3, 0))) / 3.0
    n10 = n01 = (irit.coord(dpt1, 0) * irit.coord(dpt1, 1) +
                 irit.coord(dpt2, 0) * irit.coord(dpt2, 1) +
                 irit.coord(dpt3, 0) * irit.coord(dpt3, 1)) / 3.0
    n11 = (irit.sqr(irit.coord(dpt1, 1)) + irit.sqr(irit.coord(dpt2, 1)) +
           irit.sqr(irit.coord(dpt3, 1))) / 3.0
    d = n00 * n11 - n01 * n10
    m00 = n11 / d
    m11 = n00 / d
    m01 = m10 = (-n01) / d
    a = m00
    b = m01 + m10
    c = m11
    p_nrml = irit.max( irit.max( abs( irit.FetchRealObject(a) ), \
          abs( irit.FetchRealObject(b) ) ), \
예제 #4
0
def distptpt(pt1, pt2):
    retval = math.sqrt( irit.sqr( irit.FetchRealObject(irit.coord( pt1, 1 )) - \
          irit.FetchRealObject(irit.coord( pt2, 1 )) ) + \
          irit.sqr( irit.FetchRealObject(irit.coord( pt1, 2 )) - irit.FetchRealObject(irit.coord( pt2, 2 ) )) + \
          irit.sqr( irit.FetchRealObject(irit.coord( pt1, 3 )) - irit.FetchRealObject(irit.coord( pt2, 3 )) ) )
    return retval
예제 #5
0
def somemath(x, y):
    retval = (irit.sqr(x) * factor(y) + irit.sqr(y) * factor(x))
    return retval
예제 #6
0

#
#  Interact with Axes(), possible in a middle of expression (returns o).
#
def aint(o):
    irit.interact(irit.list(o, irit.GetAxes()))
    retval = o
    return retval


b = irit.box(((-3), (-2), (-1)), 6, 4, 2)
t = 3.14


irit.save( "functn1", irit.list( irit.GenRealObject(math.sqrt( irit.sqr( t * 3.14 ) )) ,  \
         irit.GenRealObject(irit.sqr( 2 )), \
         irit.GenRealObject(irit.sqr( 2 ) + irit.sqr( 2 )),  \
         irit.GenRealObject(factor( 3 )), \
         irit.GenRealObject(factor( 10 )), \
         irit.GenRealObject(factor( 15 )), \
         aint( b ), \
         aint( irit.cone( ( 0, 0, (-1 ) ), ( 0, 0, 4 ), 2, 1 ) ) ) )

irit.free(b)


#
#  Few parameters. Apply operator to two given operand. Note since operators
#  are overloaded, we can apply this function to many types.
#
예제 #7
0
    str(irit.Fetch3TupleObject(v2))

    if (v1 * m != v2 or v2 * (m ^ (-1)) != v1 or v3 != v3 * m):
        print "errror\n"
    else:
        print "ok\n"
    i = i + 1

irit.save(
    "macros1",
    irit.list(
        irit.min(1, (-5)), irit.min(5, irit.min(10, 15)),
        irit.min(1, math.sin(45 * math.pi / 180)), irit.max(1, (-5)),
        irit.max(5, irit.max(10, 15)), irit.max(1,
                                                math.sin(45 * math.pi / 180)),
        irit.sqr(math.sin(45 * math.pi / 180)),
        irit.sqr((-math.sin(45 * math.pi / 180)) / 2.0),
        irit.normalizeVec(irit.vector(5, 2, 6)),
        irit.normalizePt(irit.point(1, (-2), 5)),
        irit.midpoint(irit.point(0, 1, 15), irit.point(10, 2, (-5))),
        irit.midpoint(irit.normalizeVec(irit.vector(0, 10, 15)),
                      irit.normalizeVec(irit.vector(10, 2, (-5)))),
        irit.interppoint(irit.point(0, 1, 15), irit.point(10, 2, (-5)), 0.1),
        irit.interppoint(irit.vector(0, 1, 15), irit.vector(10, 2, (-5)), 1.1),
        ed1, ed2, ed3, ed4))

irit.free(ed1)
irit.free(ed2)
irit.free(ed3)
irit.free(ed4)