コード例 #1
0
    if key == ' ': fbo.save(on_display, "gl-circles.png")


# -----------------------------------------------------------------------------
if __name__ == '__main__':
    from glagg import CircleCollection

    glut.glutInit(sys.argv)
    glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB)
    glut.glutCreateWindow("OpenGL antialiased circles")
    glut.glutReshapeWindow(512, 512 + 32)
    glut.glutDisplayFunc(on_display)
    glut.glutReshapeFunc(on_reshape)
    glut.glutKeyboardFunc(on_keyboard)

    collection = CircleCollection()
    radius = 255.0
    theta, dtheta = 0, 5.5 / 180.0 * np.pi
    for i in range(500):
        theta += dtheta
        x = 256 + radius * np.cos(theta)
        y = 256 + 32 + radius * np.sin(theta)
        r = 10.1 - i * 0.02
        radius -= 0.45
        collection.append(center=(x, y), radius=r)

    for i in range(0, 39):
        linewidth = (i + 1) / 10.0
        x = 20 + i * 12.5 - r
        y = 16
        collection.append(center=(x, y), radius=4, linewidth=linewidth)
コード例 #2
0
ファイル: demo-graph.py プロジェクト: Eric89GXL/gl-agg
if __name__ == "__main__":
    from glagg import LineCollection, CircleCollection

    glut.glutInit(sys.argv)
    glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB | glut.GLUT_DEPTH)
    glut.glutInitWindowSize(512, 512)
    glut.glutCreateWindow("Dynamic graph")
    glut.glutDisplayFunc(on_display)
    glut.glutReshapeFunc(on_reshape)
    glut.glutKeyboardFunc(on_keyboard)
    glut.glutMouseFunc(on_mouse)
    glut.glutMotionFunc(on_motion)

    nodes, links = graph()

    circles = CircleCollection()
    lines = LineCollection()
    for node in nodes:
        position = node["position"]
        circles.append(center=position, radius=5, linewidth=2, fg_color=(1, 1, 1, 1), bg_color=(1, 0.5, 0.5, 1))

    src = nodes[links["source"]]["position"]
    tgt = nodes[links["target"]]["position"]
    V = np.array(zip(src, tgt)).reshape(2 * len(src), 2)
    lines.append(V, linewidth=1.5, color=(0.75, 0.75, 0.75, 1.00))

    drag, index = False, -1

    fps = 60
    glut.glutTimerFunc(1000 / fps, on_timer, fps)
    glut.glutMainLoop()
コード例 #3
0
ファイル: demo-rain.py プロジェクト: mdboom/gl-agg
    glut.glutPostRedisplay()

def on_timer(fps):
    collection.fg_color[...,3] -= .01
    collection.radius += 1.0
    glut.glutTimerFunc(1000/fps, on_timer, fps)
    glut.glutPostRedisplay()


# -----------------------------------------------------------------------------
if __name__ == '__main__':
    import sys
    import OpenGL.GLUT as glut
    from glagg import CircleCollection

    glut.glutInit(sys.argv)
    glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB | glut.GLUT_DEPTH)
    glut.glutCreateWindow("Antialiased thick circles")
    glut.glutReshapeWindow(800, 800)
    glut.glutDisplayFunc(on_display)
    glut.glutReshapeFunc(on_reshape)
    glut.glutKeyboardFunc(on_keyboard)
    glut.glutPassiveMotionFunc(on_passive_motion)
    glut.glutTimerFunc(1000/60, on_timer, 60)

    index = 0
    collection = CircleCollection()
    for i in range(500):
        collection.append(linewidth=1.5, radius = 1, fg_color = (1,1,1,0))
    glut.glutMainLoop()
コード例 #4
0
    circles.append( center = p3, radius = 4, fg_color=(0.0,0.0,1.0,1.0) )


# -----------------------------------------------------------------------------
if __name__ == '__main__':
    import sys
    import OpenGL.GLUT as glut

    from glagg import curve3_bezier, curve4_bezier
    from glagg import PathCollection, CircleCollection

    glut.glutInit(sys.argv)
    glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB | glut.GLUT_DEPTH)
    glut.glutInitWindowSize(800, 800)
    glut.glutCreateWindow("Dynamic cubic Bézier curve [drag handles with mouse]")
    glut.glutDisplayFunc(on_display)
    glut.glutReshapeFunc(on_reshape)
    glut.glutKeyboardFunc(on_keyboard)
    glut.glutMouseFunc(on_mouse)
    glut.glutMotionFunc(on_motion)
    glut.glutPassiveMotionFunc(on_passive_motion)

    paths = PathCollection()
    circles = CircleCollection()
    drag,index = False, -1
    points = np.array( [ (100.,400.), (400.,700.),
                         (500.,100.), (700.,400.) ] )
    add_bezier(*points)

    glut.glutMainLoop()
コード例 #5
0
ファイル: gl-circles.py プロジェクト: Eric89GXL/gl-agg
    if key == ' ': fbo.save( on_display, "gl-circles.png")


# -----------------------------------------------------------------------------
if __name__ == '__main__':
    from glagg import CircleCollection

    glut.glutInit(sys.argv)
    glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB)
    glut.glutCreateWindow("OpenGL antialiased circles")
    glut.glutReshapeWindow(512, 512+32)
    glut.glutDisplayFunc(on_display)
    glut.glutReshapeFunc(on_reshape)
    glut.glutKeyboardFunc(on_keyboard)

    collection = CircleCollection()
    radius = 255.0
    theta, dtheta = 0, 5.5/180.0*np.pi
    for i in range(500):
        theta += dtheta
        x = 256+radius*np.cos(theta)
        y = 256+32+radius*np.sin(theta)
        r = 10.1-i*0.02
        radius -= 0.45
        collection.append(center=(x,y), radius=r)

    for i in range(0,39):
        linewidth = (i+1)/10.0
        x = 20+i*12.5 - r
        y = 16
        collection.append(center=(x,y), radius=4, linewidth=linewidth)
コード例 #6
0
def on_timer(fps):
    collection.fg_color[..., 3] -= .01
    collection.radius += 1.0
    glut.glutTimerFunc(1000 / fps, on_timer, fps)
    glut.glutPostRedisplay()


# -----------------------------------------------------------------------------
if __name__ == '__main__':
    import sys
    import OpenGL.GLUT as glut
    from glagg import CircleCollection

    glut.glutInit(sys.argv)
    glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB
                             | glut.GLUT_DEPTH)
    glut.glutInitWindowSize(800, 800)
    glut.glutCreateWindow("Circle rain")
    glut.glutDisplayFunc(on_display)
    glut.glutReshapeFunc(on_reshape)
    glut.glutKeyboardFunc(on_keyboard)
    glut.glutPassiveMotionFunc(on_passive_motion)
    glut.glutTimerFunc(1000 / 60, on_timer, 60)

    index = 0
    collection = CircleCollection()
    for i in range(500):
        collection.append(linewidth=1.5, radius=1, fg_color=(1, 1, 1, 0))
    glut.glutMainLoop()
コード例 #7
0
ファイル: demo-graph.py プロジェクト: x2nie/gl-agg
    from glagg import LineCollection, CircleCollection

    glut.glutInit(sys.argv)
    glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB | glut.GLUT_DEPTH)
    glut.glutInitWindowSize(512, 512)
    glut.glutCreateWindow("Dynamic graph")
    glut.glutDisplayFunc(on_display)
    glut.glutReshapeFunc(on_reshape)
    glut.glutKeyboardFunc(on_keyboard)
    glut.glutMouseFunc(on_mouse)
    glut.glutMotionFunc(on_motion)


    nodes,links = graph( )

    circles = CircleCollection()
    lines = LineCollection()
    for node in nodes:
        position = node['position']
        circles.append(center = position, radius=5, linewidth=2,
                       fg_color=(1,1,1,1), bg_color=(1,.5,.5,1))

    src = nodes[links['source']]['position']
    tgt = nodes[links['target']]['position']
    V = np.array(zip(src,tgt)).reshape(2*len(src),2)
    lines.append(V, linewidth=1.5, color=(0.75,0.75,0.75,1.00))

    drag,index = False, -1

    fps = 60
    glut.glutTimerFunc(1000/fps, on_timer, fps)