Пример #1
0
def drawBisector(myscreen, bis):
    N = 200
    """
    t= bis.minT()
    tmax = 400
    dt = float(tmax)/float(N)
    """
    ppts = []
    mpts = []
    for t in bis.trange(N):
        ppts.append(bis.Point(t, 1)[0])  # with positive sign
        mpts.append(bis.Point(t, 1)[1])  # with negative sign
        #t= t+dt
    #for p in ppts:
    #    drawVertex(myscreen, p, ovdvtk.green, rad=1)
    for n in range(len(ppts) - 1):
        p1 = ppts[n]
        p2 = ppts[n + 1]
        myscreen.addActor(
            ovdvtk.Line(p1=(p1.x, p1.y, 0),
                        p2=(p2.x, p2.y, 0),
                        color=ovdvtk.green))

    #for p in mpts:
    #    drawVertex(myscreen, p, ovdvtk.red, rad=1)
    for n in range(len(mpts) - 1):
        p1 = mpts[n]
        p2 = mpts[n + 1]
        myscreen.addActor(
            ovdvtk.Line(p1=(p1.x, p1.y, 0),
                        p2=(p2.x, p2.y, 0),
                        color=ovdvtk.red))
Пример #2
0
def drawLoops(myscreen, loops, loopColor):
    # draw the loops
    nloop = 0
    for lop in loops:
        n = 0
        N = len(lop)
        first_point = []
        previous = []
        for p in lop:
            #print p
            if n == 0:  # don't draw anything on the first iteration
                previous = p
                first_point = p
            elif n == (N - 1):  # the last point
                myscreen.addActor(
                    ovdvtk.Line(p1=(previous[0], previous[1], 0),
                                p2=(p[0], p[1], 0),
                                color=loopColor))  # the normal line
                # and a line from p to the first point
                myscreen.addActor(
                    ovdvtk.Line(p1=(p[0], p[1], 0),
                                p2=(first_point[0], first_point[1], 0),
                                color=loopColor))
            else:
                myscreen.addActor(
                    ovdvtk.Line(p1=(previous[0], previous[1], 0),
                                p2=(p[0], p[1], 0),
                                color=loopColor))
                print("line %s to %s" % (previous, p))
                previous = p
            n = n + 1
        print("rendered loop %s with %s points" % (nloop, len(lop)))
        nloop = nloop + 1
def drawLoops(myscreen, loops, loopColor):
    """ draw the loops
    """
    nloop = 0
    for lop in loops:
        n = 0
        N = len(lop)
        first_point = []
        previous = []
        for p in lop:
            if n == 0:  # don't draw anything on the first iteration
                previous = p
                first_point = p
            elif n == (N - 1):  # the last point
                myscreen.addActor(
                    ovdvtk.Line(p1=(previous[0], previous[1], 0),
                                p2=(p[0], p[1], 0),
                                color=loopColor))  # the normal line
                # and a line from p to the first point
                myscreen.addActor(
                    ovdvtk.Line(p1=(p[0], p[1], 0),
                                p2=(first_point[0], first_point[1], 0),
                                color=loopColor))
            else:
                myscreen.addActor(
                    ovdvtk.Line(p1=(previous[0], previous[1], 0),
                                p2=(p[0], p[1], 0),
                                color=loopColor))
                previous = p
            n = n + 1
        print "rendered loop ", nloop, " with ", len(lop), " points"
        nloop = nloop + 1
def drawLine(myscreen, l, lineColor):
    #  x = -by-c / a
    # if l.a != 0:
    if (abs(l.a) > abs(l.b)):
        y = 100
        p1 = ovd.Point(float(-l.b * y - l.c) / l.a, y)
        y = -100
        p2 = ovd.Point(float(-l.b * y - l.c) / l.a, y)
        myscreen.addActor(ovdvtk.Line(p1=(p1.x, p1.y, 0), p2=(p2.x, p2.y, 0), color=lineColor))
    else:
        x = 100
        p1 = ovd.Point(x, float(-l.a * x - l.c) / l.b)
        x = -100
        p2 = ovd.Point(x, float(-l.a * x - l.c) / l.b)
        myscreen.addActor(ovdvtk.Line(p1=(p1.x, p1.y, 0), p2=(p2.x, p2.y, 0), color=lineColor))
Пример #5
0
def drawEdge(myscreen, e, edgeColor=ovdvtk.yellow):
    p1 = e[0]
    p2 = e[1]
    myscreen.addActor(
        ovdvtk.Line(p1=(p1.x, p1.y, p1.z),
                    p2=(p2.x, p2.y, p2.z),
                    color=edgeColor))
Пример #6
0
def drawArc(myscreen, pt1, pt2, r, cen, cw, arcColor):
    start = pt1 - cen
    end = pt2 - cen
    theta1 = math.atan2(start.x, start.y)
    theta2 = math.atan2(end.x, end.y)
    alfa = []  # the list of angles
    da = 0.1
    CIRCLE_FUZZ = 1e-9
    # idea from emc2 / cutsim g-code interp G2/G3
    if (cw == False):
        while ((theta2 - theta1) > -CIRCLE_FUZZ):
            theta2 -= 2 * math.pi
    else:
        while ((theta2 - theta1) < CIRCLE_FUZZ):
            theta2 += 2 * math.pi

    dtheta = theta2 - theta1
    arclength = r * dtheta
    dlength = min(0.01, arclength / 10)
    steps = int(float(arclength) / float(dlength))
    rsteps = float(1) / float(steps)
    dc = math.cos(-dtheta * rsteps)  # delta-cos  
    ds = math.sin(-dtheta * rsteps)  # delta-sin

    previous = pt1
    tr = [start.x, start.y]
    for i in range(steps):
        tr = rotate(tr[0], tr[1], dc, ds)  # ; // rotate center-start vector by a small amount
        x = cen.x + tr[0]
        y = cen.y + tr[1]
        current = ovd.Point(x, y)
        myscreen.addActor(ovdvtk.Line(p1=(previous.x, previous.y, 0), p2=(current.x, current.y, 0), color=arcColor))
        previous = current
Пример #7
0
def drawCurve(myscreen,curve,loopColor):
    n = 0
    N = len(curve)
    first_point=[]
    previous=[]
    for p in curve:
        if n==0: # don't draw anything on the first iteration
            previous=p 
            first_point = p
        else:
            myscreen.addActor( ovdvtk.Line(p1=(previous[0],previous[1],0),p2=(p[0],p[1],0),color=loopColor) )
            previous=p
        n=n+1
    print "rendered curve  with ", len(curve), " points"
Пример #8
0
def drawLine(myscreen, p1, p2):
    myscreen.addActor(
        ovdvtk.Line(p1=(p1.x, p1.y, 0),
                    p2=(p2.x, p2.y, 0),
                    color=ovdvtk.yellow))
Пример #9
0
def drawLine(myscreen, p1, p2):
    myscreen.addActor(
        ovdvtk.Line(p1=(p1[0], p1[1], 0),
                    p2=(p2[0], p2[1], 0),
                    color=ovdvtk.yellow2))
Пример #10
0
def drawArc(myscreen, pt1, pt2, r, arcColor):
    myscreen.addActor(
        ovdvtk.Line(p1=(pt1.x, pt1.y, 0), p2=(pt2.x, pt2.y, 0),
                    color=arcColor))
Пример #11
0
def drawLine(myscreen, pt1, pt2, lineColor):
    myscreen.addActor(
        ovdvtk.Line(p1=(pt1.x, pt1.y, 0),
                    p2=(pt2.x, pt2.y, 0),
                    color=lineColor))
Пример #12
0
def drawLine(myscreen, previous, p, loopColor):
    myscreen.addActor(
        ovdvtk.Line(p1=(previous[0], previous[1], 0),
                    p2=(p[0], p[1], 0),
                    color=loopColor))
Пример #13
0
            writeFrame(w2if, lwr, nf)
            nf = nf + 1
        # """

        # DELETE-EDGES
        # """
        delEdges = vd.getDeleteEdges(p)
        modEdges = vd.getModEdges(p)
        # print " seed vertex is ",sv
        edge_actors = []
        if n in ren:
            for e in delEdges:
                p1 = scale * e[0]
                p2 = scale * e[1]
                e_actor = ovdvtk.Line(p1=(p1.x, p1.y, 0),
                                      p2=(p2.x, p2.y, 0),
                                      color=ovdvtk.red)
                edge_actors.append(e_actor)
            for e in modEdges:
                p1 = scale * e[0]
                p2 = scale * e[1]
                e_actor = ovdvtk.Line(p1=(p1.x, p1.y, 0),
                                      p2=(p2.x, p2.y, 0),
                                      color=ovdvtk.green)
                edge_actors.append(e_actor)
            for a in edge_actors:
                myscreen.addActor(a)
            myscreen.render()
            time.sleep(delay)
            writeFrame(w2if, lwr, nf)
            nf = nf + 1
Пример #14
0
    # draw a unit-circle
    ca = ovdvtk.Circle(center=(0,0,0) , radius=1, color=(0,1,1), resolution=50 )
    myscreen.addActor(ca)   
    
    scale=1
    far = 1
    camPos = far
    zmult = 3
    myscreen.camera.SetPosition(0, -camPos/float(1000), zmult*camPos) 
    myscreen.camera.SetClippingRange(-(zmult+1)*camPos,(zmult+1)*camPos)
    myscreen.camera.SetFocalPoint(0.0, 0, 0)
    
    size = 1.1
    
    # bounding-box
    myscreen.addActor( ovdvtk.Line(p1=(-size/2,-size/2,0),p2=(-size/2,size/2,0),color=ovdvtk.orange) )
    myscreen.addActor( ovdvtk.Line(p1=(-size/2,size/2,0),p2=(size/2,size/2,0),color=ovdvtk.orange) )
    myscreen.addActor( ovdvtk.Line(p1=(size/2,size/2,0),p2=(size/2,-size/2,0),color=ovdvtk.orange) )
    myscreen.addActor( ovdvtk.Line(p1=(size/2,-size/2,0),p2=(-size/2,-size/2,0),color=ovdvtk.orange) )
    
    startpt = [-size/2,-size/2]
    level = 5
    step = size / math.pow(2, level)

    Hilbert( 0, level, 90, step, startpt)
    #print pts
    drawCurve2(myscreen,pts,ovdvtk.yellow)
    
    print "PYTHON All DONE."

    myscreen.render()