def draw_init(self, backgroundImg=False, fontsize=14, fontColor="white"): gloo.clear(color="#231e1f") # gloo.set_state("translucent", depth_test=False,blend=True) try: self.text.clear() except: pass self.selected_point = -1 self.fontsize = fontsize panzoom = PanZoomTransform(self.canvas) if backgroundImg: self.im = read_png("timg.png") self.image = ImageVisual(self.im, method="subdivide") self.image.update = self.canvas.update self.image.transform = STTransform( scale=(2 / self.image.size[0], 2 / self.image.size[1]), translate=(-1, -1), ) else: self.image = None self.markers = PointCollection( "agg", vertex=self.pvertex, fragment=self.pfragment, color="shared", size="local", transform=panzoom, ) self.lines = PathCollection( mode="agg", vertex=self.lvertex, fragment=self.lfragment, color="shared", linewidth="global", transform=panzoom, ) self.markers.update.connect(self.canvas.update) self.lines.update.connect(self.canvas.update) self.text = TextVisual(u"", color="white") self.text.font_size = self.fontsize self.text.visible = False self.textpos = None self.canvas.events.draw.connect(self.on_draw) self.canvas.events.resize.connect(self.on_resize) self.canvas.events.mouse_press.connect(self.on_mouse_press) self.canvas.show()
def __init__(self): prog = MultiProgram(vcode='', fcode='') self.points = PointCollection("agg", color="shared", program=prog) visuals.Visual.__init__(self, program=prog)
# -*- coding: utf-8 -*- # vispy: testskip import sys import numpy as np from vispy import app, gloo from vispy.visuals.collections import PointCollection from vispy.visuals.transforms import PanZoomTransform canvas = app.Canvas(size=(800, 600), show=True, keys='interactive') gloo.set_viewport(0, 0, canvas.size[0], canvas.size[1]) gloo.set_state("translucent", depth_test=False) panzoom = PanZoomTransform(canvas) points = PointCollection("agg", color="shared", transform=panzoom) points.append(np.random.normal(0.0, 0.5, (10000, 3)), itemsize=5000) points["color"] = (1, 0, 0, 1), (0, 0, 1, 1) points.update.connect(canvas.update) @canvas.connect def on_draw(event): gloo.clear('white') points.draw() @canvas.connect def on_resize(event): width, height = event.size gloo.set_viewport(0, 0, width, height)