def Init_page(self):
     """ Dessine le fond de page """
     # Ombre de la page
     ombre1 = FloatCanvas.Rectangle(
         (self.taille_page[0] - 1, -EPAISSEUR_OMBRE),
         (EPAISSEUR_OMBRE + 1, self.taille_page[1]),
         LineWidth=0,
         LineColor=COULEUR_OMBRE_PAGE,
         FillColor=COULEUR_OMBRE_PAGE,
         InForeground=False)
     ombre2 = FloatCanvas.Rectangle(
         (EPAISSEUR_OMBRE, -EPAISSEUR_OMBRE),
         (self.taille_page[0] - 1, EPAISSEUR_OMBRE + 1),
         LineWidth=0,
         LineColor=COULEUR_OMBRE_PAGE,
         FillColor=COULEUR_OMBRE_PAGE,
         InForeground=False)
     # Fond de page
     rect = FloatCanvas.Rectangle((0, 0),
                                  self.taille_page,
                                  LineWidth=1,
                                  FillColor=COULEUR_FOND_PAGE,
                                  InForeground=False)
     self.page = self.canvas.AddGroup([ombre1, ombre2, rect],
                                      InForeground=False)
예제 #2
0
    def __init__(self,
                 Label,
                 XY,
                 Diameter,
                 TextColor="Black",
                 LineColor="Black",
                 LineStyle="Solid",
                 LineWidth=1,
                 FillColor=None,
                 FillStyle="Solid",
                 InForeground=False,
                 IsVisible=True):
        self.XY = np.asarray(XY, np.float).reshape(2, )

        Label = FC.ScaledText(
            Label,
            self.XY,
            Size=Diameter / 2.0,
            Color=TextColor,
            Position='cc',
        )
        self.Circle = FC.Circle(
            self.XY,
            Diameter,
            FillColor=FillColor,
            LineStyle=None,
        )
        FC.Group.__init__(self, [self.Circle, Label], InForeground, IsVisible)
    def test_lib_floatcanvas_fc_polygon(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.Polygon((2, 2))

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
예제 #4
0
    def __init__(self, main_cfg):
        super().__init__()
        w, h = 1920, 1080
        super(PyPublisher, self).__init__(None, title="MIBCI", size=(w, h))

        # self.main_cfg = main_cfg
        self.is_pre = main_cfg.is_pre
        self.session_type = main_cfg.session_type
        self.save_path = main_cfg.subject.get_date_dir()
        self.NF_time_len = main_cfg.stim_cfg.NF_training_duration
        self.init_data()
        self.Bind(wx.EVT_CHAR_HOOK, self.onKey)
        self.Bind(wx.EVT_CLOSE, self.onClose)
        self.rect0 = FloatCanvas.Rectangle((0, 0), (0, 0), FillColor='Red')
        # self.rect1 = FloatCanvas.Rectangle((0, 0), (0, 0), FillColor='Red')
        self.rect_t = FloatCanvas.Rectangle((0, 0), (0, 0),
                                            FillColor='Red')  # 进度条
        self.Canvas = FloatCanvas.FloatCanvas(
            self,
            -1,
            size=(w, h),
            ProjectionFun=None,
            Debug=0,
            BackgroundColor="Black",
        )
        self.SetSize(x=1920, y=0, width=w, height=h)
    def test_lib_floatcanvas_fc_rectangle(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.Rectangle((2, 2),  (2, 2))

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
    def test_lib_floatcanvas_fc_arc(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.Arc((10, 10), (20, 20), (5, 5))

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
    def test_lib_floatcanvas_fc_circle(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.Circle((2, 2),  2)

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
    def test_lib_floatcanvas_fc_arrowline(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.ArrowLine((10, 10))

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
    def test_lib_floatcanvas_fc_squarepoint(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.SquarePoint((2, 2))

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
    def test_lib_floatcanvas_fc_text(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.Text("some text", (2, 2))

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
    def test_lib_floatcanvas_fc_spline(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.Spline((2, 2))

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
    def test_lib_floatcanvas_fc_scaledtextbox(self):
        fccanvas = fc.FloatCanvas(self.frame)

        obj = fc.ScaledTextBox("some text", (2, 2), 100)

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
예제 #13
0
    def update_labels(self):
        Canvas = self.canvas
        try:
            Canvas.RemoveObject(self.labelGroup)
        except ValueError:
            pass
        self.labelGroup = FloatCanvas.Group()
        for room in self.sim.hospital.layout.values():
            #draw output for allocation room
            if isinstance(room, BedAllocationRoom):
                settings = ROOM_SETTINGS['room_mapping'][type(room)]
                timeToIBA = room.get_time_to_initial_bed_assignment()
                numClosedBeds = room.get_num_closed_beds_by_category()[1]
                self.labelGroup.AddObject(
                    FloatCanvas.ScaledText(
                        "t to IBA = {}({})".format(timeToIBA[0], timeToIBA[1]),
                        (room.guiCoords[0],
                         room.guiCoords[1] - settings[HEIGHT] / 2.0 -
                         ROOM_SETTINGS['name_text_size']),
                        Position="tc",
                        Size=ROOM_SETTINGS['name_text_size']))
                self.labelGroup.AddObject(
                    FloatCanvas.ScaledText(
                        "Num Closed Beds = {}".format(numClosedBeds),
                        (room.guiCoords[0],
                         room.guiCoords[1] - settings[HEIGHT] / 2.0 -
                         2 * ROOM_SETTINGS['name_text_size']),
                        Position="tc",
                        Size=ROOM_SETTINGS['name_text_size']))

        Canvas.AddObject(self.labelGroup)
        Canvas.Draw()
예제 #14
0
 def test_lib_floatcanvas_fc_scaledbitmap(self):
     fccanvas = fc.FloatCanvas(self.frame)
     
     bmp = wx.Bitmap(pngFile)
     obj = fc.ScaledBitmap(bmp, (2, 2), 100)
     
     fccanvas.AddObject(obj)
    def test_lib_floatcanvas_fc_bitmap(self):
        fccanvas = fc.FloatCanvas(self.frame)

        bmp = wx.Bitmap(pngFile)
        obj = fc.Bitmap(bmp, (2, 2))

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
예제 #16
0
    def __init__(self,parent, id,title,position,size):
        wx.Frame.__init__(self,parent, id,title,position, size)

        self.CreateStatusBar()
        # Add the Canvas
        NC = NavCanvas.NavCanvas(self,
                                 size= (500,500),
                                 ProjectionFun = None,
                                 Debug = 0,
                                 )

        self.Canvas = NC.Canvas


        self.Show(True)


        # --- draw link between centroids ---

        # build link
        link_pts = get_line_pts([-100,-170],[500,301],order=4, num=100)

        # construct arrow in center of line
        arrow_coords = build_arrow(link_pts, arrow_length=3)

        # plot the link and arrowhead
        self.Canvas.AddObject(FloatCanvas.Polygon(arrow_coords,FillColor='Blue',InForeground=True))
        #self.Canvas.AddObject(FloatCanvas.Line(link_pts,LineWidth=2,InForeground=False))


        cmap = plt.cm.Blues
        num_colors = len(link_pts)
        colors = [cmap(1.*i/num_colors) for i in range(num_colors)]

        # import random
        # r = lambda: random.randint(0,255)
        for i in range(0,len(link_pts)-1):
            #color = '#%02X%02X%02X' % (r(),r(),r())
            color = mcolors.rgb2hex(colors[i])
            #color = colors[i][:-1]
            self.Canvas.AddObject(FloatCanvas.Line((link_pts[i],link_pts[i+1]),LineColor=color,LineWidth=2,InForeground=False))



        # --- draw rounded rectangle objects ---
        # draw some boxes
        draw_rounded_rectangle(self.Canvas,(-100,-170),width=200, height=100)
        draw_rounded_rectangle(self.Canvas,(500,301), width=250, height=150)






        # zoom to bounding box
        self.Canvas.ZoomToBB()

        return None
예제 #17
0
 def test_floatcanvas_group(self):
     item1 = FloatCanvas.Circle((0, 0), 10)
     item2 = FloatCanvas.Circle((0, 5), 10)
     item3 = FloatCanvas.Circle((5, 5), 10)
     try:
         FloatCanvas.Group([item1, item2, item3])
     except AttributeError:
         self.fail(
             "Has wx/lib/floatcanvas/FCObjects.py been edited correctly?")
예제 #18
0
 def draw_img(self, path, xy, height=None):
     image = wx.Image(path)
     if height is None:
         img = FloatCanvas.Bitmap(image, xy, Position='cc')
     else:
         img = FloatCanvas.ScaledBitmap(image,
                                        xy,
                                        Height=height,
                                        Position='cc')
     self.Canvas.AddObject(img)
     self.Canvas.Draw()
예제 #19
0
    def __init__(self, parent, id, title, position, size):
        wx.Frame.__init__(self, parent, id, title, position, size)

        ## Set up the MenuBar
        MenuBar = wx.MenuBar()

        FileMenu = wx.Menu()

        OpenMenu = FileMenu.Append(wx.ID_ANY, "&Open", "Open BNA")
        self.Bind(wx.EVT_MENU, self.OpenBNA, OpenMenu)

        SaveMenu = FileMenu.Append(wx.ID_ANY, "&Save", "Save BNA")
        self.Bind(wx.EVT_MENU, self.SaveBNA, SaveMenu)

        CloseMenu = FileMenu.Append(wx.ID_EXIT, "", "Close Application")
        self.Bind(wx.EVT_MENU, self.OnQuit, CloseMenu)

        MenuBar.Append(FileMenu, "&File")

        view_menu = wx.Menu()
        ZoomMenu = view_menu.Append(wx.ID_ANY, "Zoom to &Fit",
                                    "Zoom to fit the window")
        self.Bind(wx.EVT_MENU, self.ZoomToFit, ZoomMenu)
        MenuBar.Append(view_menu, "&View")

        help_menu = wx.Menu()
        AboutMenu = help_menu.Append(wx.ID_ABOUT, "",
                                     "More information About this program")
        self.Bind(wx.EVT_MENU, self.OnAbout, AboutMenu)
        MenuBar.Append(help_menu, "&Help")

        self.SetMenuBar(MenuBar)

        self.CreateStatusBar()
        # Add the Canvas
        self.Canvas = NavCanvas.NavCanvas(
            self, -1, (500, 500), Debug=0,
            BackgroundColor="DARK SLATE BLUE").Canvas

        wx.EVT_CLOSE(self, self.OnCloseWindow)

        FloatCanvas.EVT_MOTION(self.Canvas, self.OnMove)
        FloatCanvas.EVT_LEFT_UP(self.Canvas, self.OnLeftUp)
        FloatCanvas.EVT_LEFT_DOWN(self.Canvas, self.OnLeftDown)

        try:
            self.FileDialog = wx.FileDialog(self, "Pick a BNA file", ".", "",
                                            "*", wx.FD_OPEN)
        except wx._core.PyAssertionError:
            self.FileDialog = None

        self.ResetSelections()
        return None
예제 #20
0
 def __init__(
     self,
     Label,
     XY,
     WH,
     BackgroundColor="Yellow",
     TextColor="Black",
     InForeground=False,
     IsVisible=True,
 ):
     XY = N.asarray(XY, N.float).reshape(2)
     WH = N.asarray(WH, N.float).reshape(2)
     Label = FC.ScaledText(Label, XY, Size=WH[1] / 2.0, Color=TextColor, Position="cc")
     self.Ellipse = FC.Ellipse((XY - WH / 2.0), WH, FillColor=BackgroundColor, LineStyle=None)
     FC.Group.__init__(self, [self.Ellipse, Label], InForeground, IsVisible)
예제 #21
0
 def add_image(self, filename):
     print('Loading ' + filename)
     image = wx.Image(filename)
     img = FloatCanvas.ScaledBitmap2(image, (0, 0),
                                     Height=image.GetHeight(),
                                     Position='tl')
     self.Canvas.AddObject(img)
예제 #22
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.CreateStatusBar()

        MenuBar = wx.MenuBar()

        FileMenu = wx.Menu()

        item = FileMenu.Append(wx.ID_EXIT, text="&Exit")
        self.Bind(wx.EVT_MENU, self.OnQuit, item)

        item = FileMenu.Append(wx.ID_ANY, text="&Open")
        self.Bind(wx.EVT_MENU, self.OnOpen, item)

        item = FileMenu.Append(wx.ID_ANY, text="&Save Image")
        self.Bind(wx.EVT_MENU, self.OnSaveImage, item)

        MenuBar.Append(FileMenu, "&File")
        self.SetMenuBar(MenuBar)

        # Add the Canvas
        Canvas = NavCanvas.NavCanvas(self, -1,
                                     size=(500, 500),
                                     ProjectionFun=None,
                                     Debug=0,
                                     BackgroundColor=self.background_color,
                                     ).Canvas

        self.Canvas = Canvas

        FloatCanvas.EVT_MOTION(self.Canvas, self.OnMove)

        self.Show()
        Canvas.ZoomToBB()
예제 #23
0
파일: canvas.py 프로젝트: gijzelaerr/fr0st
    def __init__(self, parent, xform, color, isactive, isselected, style):
        self.xform = xform
        self.coefs = xform.coefs
        self.parent = parent
        points = xform.points

        self.triangle = AlphaPolygon(points,
                                     LineColor=color,
                                     FillColor=color,
                                     LineStyle=style,
                                     Opacity=isselected * 96 or isactive * 64)

        diameter = parent.circle_radius * 2
        circles = map(partial(FC.Circle, Diameter=diameter, LineColor=color),
                      points)
        text = map(partial(FC.Text, Size=10, Color=color), "XYO", points)
        self._circles = circles

        if isactive:
            parent._cornerpoints = self.GetCornerPoints()
            corners = [
                FC.Line(i, LineColor=color) for i in parent._cornerpoints
            ]
            text.extend(corners)

        FC.Group.__init__(self, [self.triangle] + circles + text)
예제 #24
0
    def __init__(self,
                 parent,
                 id=wx.ID_ANY,
                 **kwargs):  # The rest just get passed into FloatCanvas

        wx.Panel.__init__(self, parent, id, size=wx.Size(0, 0))

        self.GuiMouse = GUIMouse()
        self.GuiZoomIn = GUIZoomIn()
        self.GuiZoomOut = GUIZoomOut()
        self.GuiMove = GUIMove()
        self.GuiLink = GUILink()

        self.Modes = [
            ("Pointer", self.GuiMouse, icons.Cursor.GetBitmap()),
            ("Zoom In", self.GuiZoomIn, icons.Zoom_In.GetBitmap()),
            ("Zoom Out", self.GuiZoomOut, icons.Zoom_Out.GetBitmap()),
        ]

        # Create the vertical sizer for the toolbar and Panel
        box = wx.BoxSizer(wx.VERTICAL)

        self.FloatCanvas = FloatCanvas.FloatCanvas(self, **kwargs)
        box.Add(self.FloatCanvas, 1, wx.GROW)

        self.SetSizerAndFit(box)
예제 #25
0
    def _init_ui(self):
        """
        Creates the UI Elements for the wafer map and binds various events
        such as mouse wheel change (zoom) and left-click+drag (pan).
        """
        # Create items to add to our layout
        self.canvas = FloatCanvas.FloatCanvas(
            self,
            BackgroundColor="BLACK",
        )

        # Initialize the FloatCanvas. Needs to come before adding items!
        self.canvas.InitAll()

        # Create the legend
        self._create_legend()

        # Draw the die and wafer objects (outline, crosshairs) on the canvas
        self.draw_die()
        if self.plot_die_centers:
            self.draw_die_center()
        self.draw_wafer_objects()

        # Bind events to the canvas
        self._bind_events()

        # Create layout manager and add items
        self.hbox = wx.BoxSizer(wx.HORIZONTAL)

        self.hbox.Add(self.legend, 0, wx.EXPAND)
        self.hbox.Add(self.canvas, 1, wx.EXPAND)

        self.SetSizer(self.hbox)
예제 #26
0
    def _init_ui(self):
        """Create the UI Elements and bind various events."""
        # Create items to add to our layout
        self.canvas = FloatCanvas.FloatCanvas(
            self,
            BackgroundColor="BLACK",
        )

        # Initialize the FloatCanvas. Needs to come before adding items!
        self.canvas.InitAll()

        # Create the legend
        self._create_legend()

        # Draw the die and wafer objects (outline, crosshairs, etc) on the canvas
        if self.session == "r":  # if session as r (read): draw die
            self.draw_die()
        if self.plot_die_centers:
            self.draw_die_center()
        self.draw_wafer_objects()

        # Bind events to the canvas
        self._bind_events()

        # Create layout manager and add items
        self.hbox = wx.BoxSizer(wx.HORIZONTAL)

        self.hbox.Add(self.legend, 0, wx.EXPAND)
        self.hbox.Add(self.canvas, 1, wx.EXPAND)

        self.SetSizer(self.hbox)
예제 #27
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)
        self.CreateStatusBar()

        # Add the Canvas
        Canvas = NavCanvas.NavCanvas(self,
                                     ProjectionFun = None,
                                     BackgroundColor = "DARK SLATE BLUE",
                                     ).Canvas
        Canvas.MaxScale=4 # sets the maximum zoom level
        self.Canvas = Canvas

        FloatCanvas.EVT_MOTION(self.Canvas, self.OnMove ) 

        
        # create the image:
        image = wx.Image(ImageFile)
        self.width, self.height = image.GetSize()
        img = Canvas.AddScaledBitmap( image,
                                      (0,0),
                                      Height=image.GetHeight(),
                                      Position = 'tl',
                                      )

        #Box.Bind(FloatCanvas.EVT_FC_LEFT_DOWN, self.Binding)
        
        ## now set up a timer
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.AddPoint, self.timer)


        
        self.Show()
        Canvas.ZoomToBB()
        self.timer.Start(20)
예제 #28
0
 def OnLeftDown(self,event):
     x = event.Coords[0]
     y = event.Coords[1]
     print("coordinates: ",x,y)
     rect = FloatCanvas.Rectangle((x,y), (300, 40), FillColor='SKY BLUE')
     self.nav_canvas.AddObject(rect)
     self.nav_canvas.Draw()
예제 #29
0
    def recoding_on_mouse_move(self, event):
        if self.now != 1:
            # judge Rectangle whether first draw if first draw, don't remove
            self.canvas.RemoveObject(self.rect_venv)
        ds_x, ds_y = self.die_size
        gc_x, gc_y = self.grid_center
        dc_x, dc_y = wm_utils.coord_to_grid(
            event.Coords,
            self.die_size,
            self.grid_center,
        )
        self.dc_x, self.dc_y = dc_x, dc_y
        self.now += 1

        goal_x, goal_y = wm_utils.grid_to_rect_coord(
            (dc_x, dc_y), self.die_size, self.grid_center)
        r1 = math.sqrt(self.start_x**2 + self.start_y**2)
        r2 = math.sqrt(self.start_x**2 + goal_y**2)
        r3 = math.sqrt(goal_x**2 + goal_y**2)
        r4 = math.sqrt(goal_x**2 + self.start_y**2)
        # judge whether out of circle if out: not draw
        if r1 <= self.wafer_info.dia / 2 and r2 <= self.wafer_info.dia / 2 and r3 <= self.wafer_info.dia / 2 and r4 <= self.wafer_info.dia / 2:
            self.rect_venv = FloatCanvas.Rectangle(
                (self.start_x, self.start_y),
                (goal_x - self.start_x, goal_y - self.start_y),
                LineStyle=None,
                FillColor="Green")
            self.canvas.AddObject(self.rect_venv)
            self.draw_wafer_objects()  # move to draw die need redraw grid
            self.canvas.Draw()

        else:
            self.canvas.Draw()
 def Dessine_etiquettes(self):
     # Calcul du nbre de colonnes et de lignes
     if self.largeurEtiquette < 1 or self.hauteurEtiquette < 1:
         nbreColonnes = 0
         nbreLignes = 0
     else:
         nbreColonnes = (self.largeurPage - self.margeGauche -
                         self.margeDroite + self.espaceHorizontal) / (
                             self.largeurEtiquette + self.espaceHorizontal)
         nbreLignes = (self.hauteurPage - self.margeHaut - self.margeBas +
                       self.espaceVertical) / (self.hauteurEtiquette +
                                               self.espaceVertical)
     # Dessin des étiquettes
     numColonne = 0
     numLigne = 0
     y = self.hauteurPage - self.margeHaut - self.hauteurEtiquette
     for numLigne in range(0, nbreLignes):
         x = self.margeGauche
         for numColonne in range(0, nbreColonnes):
             rect = FloatCanvas.Rectangle(
                 numpy.array([x, y]),
                 numpy.array([self.largeurEtiquette,
                              self.hauteurEtiquette]),
                 LineWidth=0.25,
                 LineColor=COULEUR_BORD_ETIQUETTE,
                 FillColor=COULEUR_FOND_ETIQUETTE,
                 InForeground=True)
             self.canvas.AddObject(rect)
             x += (self.largeurEtiquette + self.espaceHorizontal)
         y -= (self.hauteurEtiquette + self.espaceVertical)