示例#1
0
    [segs, extents, scale] = get_scaled_segs(mytext)
    print_scale = float(text_length) / float(0.6)
    times = insert_many_polygons(vd, segs)  # insert segments into vd

    # count the number of segments
    num_segs = 0
    for s in segs:
        num_segs = num_segs + len(s)

    text_length = (extents.maxx - extents.minx) * scale * print_scale
    text_height = (extents.maxy - extents.miny) * scale * print_scale

    # print comments to g-code file
    print "( ttt2medial.py - experimental v-carving script )"
    print "( TTT++", ttt.version(), "                      )"
    print "( OpenVoronoi", ovd.version(), "                )"
    print "( number of polygons: ", len(segs), "                )"
    print "( number of segments: ", num_segs, "                )"
    print "( text length: ", text_length, " )"
    print "( text height: ", text_height, "                )"
    print "( VD built in %02.3f seconds   = %02f  us* n*log2{n} )" % (
        sum(times), 1e6 * float(sum(times)) /
        (float(num_segs) * float(math.log10(num_segs) / math.log10(2))))
    print "( VD check: ", vd.check(), "                              )"

    pi = ovd.PolygonInterior(
        True)  # filter so that only polygon interior remains
    vd.filter_graph(pi)
    ma = ovd.MedialAxis()  # filter so that only medial axis remains
    vd.filter_graph(ma)
示例#2
0
    segs = wr.get_segments()
    segs = translate(segs, x, y)
    print "number of polygons: ", len(segs)
    np = 0
    for s in segs:
        print " polygon ", np, " has ", len(s), " points"
        np = np + 1
    segs = modify_segments(segs)
    drawLoops(myscreen, segs, ovdvtk.yellow)


# this script only draws geometry from ttt
# no voronoi-diagram is created!
if __name__ == "__main__":
    print "ttt version = ", ttt.version()
    #w=2500
    #h=1500

    #w=1920
    #h=1080
    w = 1024
    h = 1024
    myscreen = ovdvtk.VTKScreen(width=w, height=h)
    ovdvtk.drawOCLtext(myscreen, rev_text=ovd.version())

    scale = 1
    far = 1
    camPos = far
    zmult = 3
    myscreen.camera.SetPosition(0, -camPos / float(1000), zmult * camPos)
示例#3
0
    segs = translate(segs, -extents[0], -extents[2] )
    # scale to desired length
    current_length = extents[1]-extents[0]
    current_height = extents[3]-extents[2]
    segs = scale_segs(segs, current_length, length)
    # translate to final position
    start_y=-0.5
    dy = 1.5*float(length)/float(current_length)*current_height
    print " row to y= ",start_y+n_row*dy
    segs = translate(segs, dx, start_y+n_row*dy )
    # remove duplicate points
    segs = modify_segments(segs)
    return segs
    
if __name__ == "__main__": 
    print ttt.version()
    #exit() 
    #w=2500
    #h=1500
    
    #w=1920
    #h=1080
    w=1024
    h=1024
    myscreen = ovdvtk.VTKScreen(width=w, height=h) 
    ovdvtk.drawOCLtext(myscreen, rev_text=ovd.version() )
    
    scale=1

    far = 1
    camPos = far
示例#4
0
    wr.scale = float(1)/float(scale)
    ttt.ttt(text,wr) 
    segs = wr.get_segments()
    return segs
    
if __name__ == "__main__":  
    vd = ovd.VoronoiDiagram(1,120) # parameters: (r,bins)  
    # float r  = radius within which all geometry is located. it is best to use 1 (unit-circle) for now.
    # int bins = number of bins for grid-search (affects performance, should not affect correctness)
    

    
    # get segments from ttt. NOTE: must set scale so all geometry fits within unit-circle!
    segs = ttt_segments(  "EMC2", 15000) # (text, scale) all coordinates are divided by scale
    segs = translate(segs, -0.06, 0.05)
    segs = modify_segments(segs)
    
    times = insert_many_polygons(vd,segs) # insert segments into vd
    print "( ttt2medial.py - experimental v-carving script )"
    print "( TTT++",ttt.version(),"                      )"
    print "( OpenVoronoi",vd.version(),"                )"
    print "( VD built in %02.3f seconds                     )" % ( sum(times))
    print "( VD check: ", vd.check(), "                              )"
    
    ovd.PolygonInterior( vd.getGraph() , True ) # filter so that only polygon interior remains
    ovd.MedialAxis( vd.getGraph() ) # filter so that only medial axis remains
    
    ngc_writer.preamble()
    printMedial( vd )
    ngc_writer.postamble()
示例#5
0
    # scale to desired length
    current_length = extents[1] - extents[0]
    current_height = extents[3] - extents[2]
    segs = scale_segs(segs, current_length, length)
    # translate to final position
    start_y = -0.5
    dy = 1.5 * float(length) / float(current_length) * current_height
    print " row to y= ", start_y + n_row * dy
    segs = translate(segs, dx, start_y + n_row * dy)
    # remove duplicate points
    segs = modify_segments(segs)
    return segs


if __name__ == "__main__":
    print ttt.version()
    # exit()
    # w=2500
    # h=1500

    # w=1920
    # h=1080
    w = 1024
    h = 1024
    myscreen = ovdvtk.VTKScreen(width=w, height=h)
    ovdvtk.drawOCLtext(myscreen, rev_text=ovd.version())

    scale = 1

    far = 1
    camPos = far