示例#1
0
    irit.snoc( p * irit.tx( 0 ), pts )
    i = i + 1

irit.interact( irit.list( view_mat0, crv1, pts ) )

irit.save( "pt_incrv", irit.list( irit.GetViewMatrix(), crv1, pts ) )

irit.free( crv1 )


# #############################################################################
# 
#  Point inclusion in a polyhedra:
# 

pl1 = ( irit.sphere( ( 0, 0, 0 ), 1 ) - irit.cone( ( (-1.3 ), (-2 ), (-1 ) ), ( 5, 5, 5 ), 1, 0 ) )
irit.view( irit.list( irit.GetAxes(), pl1 ), irit.ON )

pts = irit.nil(  )

i = 0
while ( i <= 1000 ):
    p =  irit.point( irit.random( (-1 ), 1 ), irit.random( (-1 ), 1 ), irit.random( (-1 ), 1 ) )
    if ( irit.FetchRealObject(irit.ppinclude( pl1, irit.Fetch3TupleObject(p) ) ) ):
        irit.color( p, irit.GREEN )
    else:
        irit.color( p, irit.RED )
    irit.snoc( p * irit.tx( 0 ), pts )
    i = i + 1

irit.interact( irit.list( irit.GetViewMatrix(), pl1, pts ) )
示例#2
0
import irit
#

#
#  Intersection of cone and a cylinder:
#  Try this one with resolution equal 20 - slower, but much nicer!
#
#                        Created by Gershon Elber,       Jan. 89
#

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.GetViewMatrix() * irit.scale((0.2, 0.2, 0.2)))
save_res = irit.GetResolution()
irit.SetResolution(8)

cone1 = irit.cone((0, 0, (-1)), (0, 0, 4), 2, 3)
cylin1 = irit.cylin((0, 3, 1), (0, (-6), 0), 0.7, 3)

a1 = (cone1 + cylin1)

irit.interact(irit.list(irit.GetViewMatrix(), a1))

a2 = cone1 * cylin1
irit.interact(a2)

a3 = (cone1 - cylin1)
irit.interact(a3)

a4 = (cylin1 - cone1)
irit.interact(a4)
示例#3
0
    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.
#
def apply(oprnd1, oprtr, oprnd2):
    if (oprtr == "+"):
        retval = oprnd1 + oprnd2
    if (oprtr == "*"):
        retval = oprnd1 * oprnd2
    if (oprtr == "-"):
        retval = oprnd1 - oprnd2
示例#4
0
axes15 = irit.GetAxes() * irit.scale((1.5, 1.5, 1.5))

#
#  Create primitive as approximated integral polynomial surfaces.
#
save_prim_rat_srfs = irit.iritstate("primratsrfs", irit.GenRealObject(0))

cyls = irit.list(irit.cylin(((-0.8), 0, 0), ((-0.5), 0.3, 0.3), 0.3, 0),
                 irit.cylin((0.8, 0, 0), (0.8, 0, 0), 0.3, 1),
                 irit.cylin((0, (-0.8), 0), (0.1, (-0.5), 0.2), 0.3, 3),
                 irit.cylin((0, 0.8, 0), (0, 0.8, 0), 0.3, 2),
                 irit.cylin((0, 0, (-0.8)), (0.4, 0.2, (-0.5)), 0.3, 3),
                 irit.cylin((0, 0, 0.8), (0, 0, 0.8), 0.3, 1))
irit.color(cyls, irit.RED)

cones = irit.list(irit.cone(((-0.5), 0, 0), ((-0.5), 0, 0), 0.5, 0),
                  irit.cone((0.5, 0, 0), (0.5, 0, 0), 0.5, 1),
                  irit.cone((0, (-0.5), 0), (0, (-0.5), 0), 0.5, 1),
                  irit.cone((0, 0.5, 0), (0, 0.5, 0), 0.5, 0),
                  irit.cone((0, 0, (-0.5)), (0, 0, (-0.5)), 0.5, 1),
                  irit.cone((0, 0, 0.5), (0, 0, 0.5), 0.5, 1))
irit.color(cones, irit.RED)

spr = irit.sphere((0, 0, 0), 0.5)
irit.color(spr, irit.RED)
trs = irit.torus((0, 0, 0), (0.1, 0.2, 1), 0.5, 0.2)
irit.color(trs, irit.RED)

#
#  Create primitive as exact rational surfaces.
#
示例#5
0
#
#  The most common example of wireframe ambiguity. See for example:
#  Geometric Modeling by Michael E. Mortenson, page 4...
#

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

irit.SetViewMatrix(irit.GetViewMatrix() * irit.scale(
    (0.6, 0.6, 0.6)) * irit.rotx(30) * irit.roty(20))
a = irit.box(((-0.5), (-0.5), (-0.55)), 1, 1, 1.1)

irit.SetResolution(4)
#  To create 4 sided pyramids from cones...
c1 = irit.cone((0, 0, (-0.6)),
               (0, 0, 0.6001), 0.6 * math.sqrt(2), 1) * irit.rotz(45)
c2 = irit.cone((0, 0, 0.6),
               (0, 0, (-0.6)), 0.6 * math.sqrt(2), 1) * irit.rotz(45)

a = (a - c1 - c2)
irit.free(c1)
irit.free(c2)
irit.view(irit.list(irit.GetViewMatrix(), a), irit.ON)

b = irit.box(((-0.3), (-0.3), (-1)), 0.6, 0.6, 2)
c = (a - b)
irit.free(a)
irit.free(b)

final = irit.convex(c)
irit.free(c)
示例#6
0
#  Display of all primitives of the system:
#  BOX, GBOX, CONE, CYLIN, SPHERE, TORUS
#
#                                Created by Gershon Elber,       Dec. 88
#

save_mat = irit.GetViewMatrix()
irit.SetViewMatrix(irit.GetViewMatrix() * irit.scale((0.5, 0.5, 0.5)))
axes15 = irit.GetAxes() * irit.scale((1.5, 1.5, 1.5))

irit.interact( irit.list( irit.GetViewMatrix(), axes15, irit.box( ( (-0.5 ), (-0.5 ), (-0.5 ) ), 1, 1, 1 ),\
irit.gbox( ( (-0.25 ), (-0.25 ), (-0.25 ) ), ( 1.1, 0.1, 0.2 ), ( 0.4, 0.9, 0.2 ), ( 0.3, 0.05, 1.4 ) ) ) )

irit.interact(
    irit.list(irit.GetViewMatrix(), axes15,
              irit.cone(((-0.5), 0, 0), ((-0.5), 0, 0), 0.5, 0),
              irit.cone((0.5, 0, 0), (0.5, 0, 0), 0.5, 0),
              irit.cone((0, (-0.5), 0), (0, (-0.5), 0), 0.5, 0),
              irit.cone((0, 0.5, 0), (0, 0.5, 0), 0.5, 0),
              irit.cone((0, 0, (-0.5)), (0, 0, (-0.5)), 0.5, 0),
              irit.cone((0, 0, 0.5), (0, 0, 0.5), 0.5, 0)))

irit.interact(
    irit.list(irit.GetViewMatrix(), axes15,
              irit.cone(((-0.5), 0, 0), ((-0.5), 0, 0), 0.5, 1),
              irit.cone((0.5, 0, 0), (0.5, 0, 0), 0.5, 1),
              irit.cone((0, (-0.5), 0), (0, (-0.5), 0), 0.5, 1),
              irit.cone((0, 0.5, 0), (0, 0.5, 0), 0.5, 1),
              irit.cone((0, 0, (-0.5)), (0, 0, (-0.5)), 0.5, 1),
              irit.cone((0, 0, 0.5), (0, 0, 0.5), 0.5, 1)))