from glagg import PathCollection from shapes import star, asterisk glut.glutInit(sys.argv) glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB | glut.GLUT_DEPTH) glut.glutInitWindowSize(512, 512) glut.glutCreateWindow("Dashed stars") glut.glutDisplayFunc(on_display) glut.glutReshapeFunc(on_reshape) glut.glutKeyboardFunc(on_keyboard) glut.glutIdleFunc(on_idle) t0, frames, t = 0, 0, 0 t0 = glut.glutGet(glut.GLUT_ELAPSED_TIME) collection = PathCollection() vertices = star(n=5) for i in range(2000): collection.append(vertices, closed=True, color=np.random.uniform(0, 1, 4), linewidth=np.random.uniform(1, 2), translate=np.random.uniform(0, 1, 2), scale=np.random.uniform(10, 15), rotate=np.random.uniform(0, 2 * np.pi), dash_pattern='dotted') positions = collection.translate.copy() glut.glutMainLoop()
from shapes import star, asterisk t0, frames, t = 0, 0, 0 t0 = glut.glutGet(glut.GLUT_ELAPSED_TIME) glut.glutInit(sys.argv) glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB | glut.GLUT_DEPTH | glut.GLUT_STENCIL) glut.glutInitWindowSize(800, 800) glut.glutCreateWindow("Clipping demo") glut.glutDisplayFunc(on_display) glut.glutReshapeFunc(on_reshape) glut.glutKeyboardFunc(on_keyboard) glut.glutIdleFunc(on_idle) collection = PathCollection() mask = PathCollection() size = 800 collection.clear() vertices = star(n=5) for i in range(2000): collection.append(vertices, closed=True, color=np.random.uniform(0, 1, 4), linewidth=np.random.uniform(1, 2), translate=np.random.uniform(0, 1, 2), scale=np.random.uniform(10, 15), rotate=np.random.uniform(0, 2 * np.pi)) positions = collection.translate.copy()
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()
from glagg import DashAtlas glut.glutInit(sys.argv) glut.glutInitDisplayMode(glut.GLUT_DOUBLE | glut.GLUT_RGB | glut.GLUT_DEPTH) glut.glutInitWindowSize(512, 512) glut.glutCreateWindow( "Dashed & antialiased bezier curve [Arrow keys change offset]") glut.glutDisplayFunc(on_display) glut.glutReshapeFunc(on_reshape) glut.glutKeyboardFunc(on_keyboard) glut.glutSpecialFunc(on_special) atlas = DashAtlas() atlas['custom'] = (.1, .1), (1, 1) collection = PathCollection(atlas) # --------------------------------- points = np.array([[.1, .6], [.5, 1.], [.9, .6]]) vertices = curve3_bezier(*points) collection.append(vertices, color=(0.75, 0.75, 1.00, 1.00), linewidth=40, dash_pattern='densely dashed') # --------------------------------- vertices = curve3_bezier(*(points + [0, -0.3])) collection.append(vertices, color=(0.75, 0.75, 1.00, 1.0), linewidth=50, linecaps=('|', '|'),