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)
Beispiel #2
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)
Beispiel #3
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()
Beispiel #4
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()
 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)
    def test_lib_floatcanvas_fc_rectangle(self):
        fccanvas = fc.FloatCanvas(self.frame)

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

        fccanvas.AddObject(obj)
        fccanvas.Destroy()
Beispiel #7
0
    def __init__(self, node, config, InForeground=False, IsVisible=True):
        Label = node.name
        location = config.Point(node)
        self.connectors = sets.Set([])

        BackgroundColor = config.getNodeColor(node)
        TextColor = config.getNodeTextColor(node)
        shape = config.getNodeShape(node)
        locationArray = N.asarray(location, N.float).reshape(2, )
        WH = N.asarray(config.getRectangleSize(), N.float).reshape(2, )
        #print "Node %s: Location = %s, WH = %s"%(Label, locationArray, WH)
        self.Node = node
        scaler = 1. + len(Label) / 7.0
        self.Label = FC.ScaledText(
            Label,
            locationArray,
            Size=WH[1] / scaler,
            Color=TextColor,
            Position='cc',
        )
        if shape == "rectangle":
            self.Shape = FC.Rectangle(
                (locationArray - WH / 2.0),
                WH,
                FillColor=BackgroundColor,
                LineStyle=None,
            )
        elif shape == "ellipse":
            self.Shape = FC.Ellipse(
                (locationArray - WH / 2.0),
                WH,
                FillColor=BackgroundColor,
                LineStyle=None,
            )
        else:
            print "Error. Unknown shape: %s" % (shape, )
        FC.Group.__init__(self, [self.Shape, self.Label], InForeground,
                          IsVisible)
Beispiel #8
0
    def __init__(self):
        super(Frame, self).__init__(None)
        self.SetTitle('My Title')
        self.SetClientSize((500, 500))
        self.Center()
        
        self.Canvas = FloatCanvas.FloatCanvas(self, -1,
                                     size=(500, 500),
                                     ProjectionFun=None,
                                     Debug=0,
                                     BackgroundColor="White",
                                     )


        # add a circle
        cir = FloatCanvas.Circle((10, 10), 100)
        self.Canvas.AddObject(cir)

        # add a rectangle
        rect = FloatCanvas.Rectangle((110, 10), (100, 100), FillColor='Red')
        self.Canvas.AddObject(rect)

        self.Canvas.Draw()
Beispiel #9
0
    def OnClickLeft(self, event):
        with open('testjson.json', 'r') as file1:
            T = json.load(file1)
        for room, dim in T.items():
            for par, dim1 in dim.items():
                if par == "topright_pos_y":
                    xx = int(T[room]["topright_pos_x"])
                    y1 = int(T[room]["topright_pos_y"])
                    yy = 0 - y1  # changing the +Y-axis to -Y-axis
                    ll = int(T[room]["length"])
                    bb = int(T[room]["breadth"])

                    drline1 = FloatCanvas.Line([(xx, yy), (xx + ll, yy)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline1)
                    drline2 = FloatCanvas.Line([(xx, yy), (xx, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline2)
                    drline3 = FloatCanvas.Line([(xx + ll, yy),
                                                (xx + ll, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline3)
                    drline4 = FloatCanvas.Line([(xx, yy - bb),
                                                (xx + ll, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline4)
                self.Canvas.Draw()
                if par == "nodes":
                    for i in range(len(T[room]["nodes"])):
                        N.append(int(T[room][par][i]["node_id"]))
                        X.append(int(T[room][par][i]["node_pos_x"]))
                        Y.append(int(T[room][par][i]["node_pos_y"]))

                        for node_par, node_val in T[room][par][i].items():
                            if T[room][par][i]["type"] == "s":
                                cir = FloatCanvas.Circle([
                                    int(T[room][par][i]["node_pos_x"]),
                                    -int(T[room][par][i]["node_pos_y"])
                                ],
                                                         7,
                                                         FillColor='red')
                                self.Canvas.AddObject(cir)
                            if T[room][par][i]["type"] == "p":
                                rect = FloatCanvas.Rectangle([
                                    int(T[room][par][i]["node_pos_x"]),
                                    -int(T[room][par][i]["node_pos_y"])
                                ], (8, 8),
                                                             FillColor='blue')
                                self.Canvas.AddObject(rect)
                            if T[room][par][i]["type"] == "k":
                                poly = FloatCanvas.Polygon([
                                    (int(T[room][par][i]["node_pos_x"]) - 4,
                                     -int(T[room][par][i]["node_pos_y"]) - 4),
                                    (int(T[room][par][i]["node_pos_x"]) + 4,
                                     -int(T[room][par][i]["node_pos_y"]) - 4),
                                    (int(T[room][par][i]["node_pos_x"]) + 4,
                                     -int(T[room][par][i]["node_pos_y"]) + 4),
                                    (int(T[room][par][i]["node_pos_x"]) - 4,
                                     -int(T[room][par][i]["node_pos_y"]) + 4)
                                ],
                                                           FillColor='yellow')
                                self.Canvas.AddObject(poly)
                            if T[room][par][i]["type"] == "r":
                                poly1 = FloatCanvas.Polygon([
                                    (int(T[room][par][i]["node_pos_x"]),
                                     -int(T[room][par][i]["node_pos_y"]) - 7),
                                    (int(T[room][par][i]["node_pos_x"]) - 7,
                                     -int(T[room][par][i]["node_pos_y"]) + 7),
                                    (int(T[room][par][i]["node_pos_x"]) + 7,
                                     -int(T[room][par][i]["node_pos_y"]) + 7)
                                ],
                                                            FillColor='cyan')
                                self.Canvas.AddObject(poly1)

            if room == "Blank_Area":
                points = [(int(T[room]['x1']), -int(T[room]['y1'])),
                          (int(T[room]['x2']), -int(T[room]['y2'])),
                          (int(T[room]['x3']), -int(T[room]['y3'])),
                          (int(T[room]['x4']), -int(T[room]['y4'])),
                          (int(T[room]['x5']), -int(T[room]['y5'])),
                          (int(T[room]['x6']), -int(T[room]['y6'])),
                          (int(T[room]['x7']), -int(T[room]['y7'])),
                          (int(T[room]['x8']), -int(T[room]['y8'])),
                          (int(T[room]['x9']), -int(T[room]['y9'])),
                          (int(T[room]['x10']), -int(T[room]['y10'])),
                          (int(T[room]['x11']), -int(T[room]['y11']))]

                blankarea = FloatCanvas.Polygon(points,
                                                LineWidth=4,
                                                LineColor='black',
                                                FillColor="#95bce7",
                                                FillStyle='Solid')
                self.Canvas.AddObject(blankarea)


# Dialog Box to input the limiting distance
        dlg_limit = wx.TextEntryDialog(self, 'Enter the Limiting Distance:')
        if dlg_limit.ShowModal() == wx.ID_OK:
            limit = int(dlg_limit.GetValue())
        dlg_limit.Destroy()

        # Drawing lines for shortest distances between two nodes
        for i in range(len(N)):
            for j in range(len(N)):
                dist = self.distance_calc(X[i], -Y[i], X[j], -Y[j])
                if dist < limit:
                    self.Canvas.AddObject(
                        FloatCanvas.Line([(X[i], -Y[i]), (X[j], -Y[j])],
                                         LineColor='Black',
                                         LineStyle='Solid',
                                         LineWidth=1))

        self.Canvas.Draw()
Beispiel #10
0
    def process_jsonfile(self, T):
        for room, dim in T.items():
            for par, dim1 in dim.items():
                if par == "topright_pos_y":
                    xx = int(T[room]["topright_pos_x"])
                    y1 = int(T[room]["topright_pos_y"])
                    yy = 0 - y1  # changing the +Y-axis to -Y-axis
                    ll = int(T[room]["length"])
                    bb = int(T[room]["breadth"])

                    drline1 = FloatCanvas.Line([(xx, yy), (xx + ll, yy)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline1)
                    drline2 = FloatCanvas.Line([(xx, yy), (xx, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline2)
                    drline3 = FloatCanvas.Line([(xx + ll, yy),
                                                (xx + ll, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline3)
                    drline4 = FloatCanvas.Line([(xx, yy - bb),
                                                (xx + ll, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline4)
                self.Canvas.Draw()
                if par == "Nodes":
                    for i in range(len(T[room]["Nodes"])):
                        N.append(int(T[room][par][i]["node_id"]))
                        X.append(int(T[room][par][i]["node_pos_x"]))
                        Y.append(int(T[room][par][i]["node_pos_y"]))

                        for node_par, node_val in T[room][par][i].items():
                            print("----", T[room][par][i]["node_id"], "------")
                            if T[room][par][i]["type"] == "s":
                                cir = FloatCanvas.Circle([
                                    int(T[room][par][i]["node_pos_x"]),
                                    -int(T[room][par][i]["node_pos_y"])
                                ],
                                                         7,
                                                         FillColor='red')
                                self.Canvas.AddObject(cir)
                                print(T[room][par][i]["type"])
                            if T[room][par][i]["type"] == "k":
                                poly = FloatCanvas.Polygon([
                                    (int(T[room][par][i]["node_pos_x"]) - 4,
                                     -int(T[room][par][i]["node_pos_y"]) - 4),
                                    (int(T[room][par][i]["node_pos_x"]) + 4,
                                     -int(T[room][par][i]["node_pos_y"]) - 4),
                                    (int(T[room][par][i]["node_pos_x"]) + 4,
                                     -int(T[room][par][i]["node_pos_y"]) + 4),
                                    (int(T[room][par][i]["node_pos_x"]) - 4,
                                     -int(T[room][par][i]["node_pos_y"]) + 4)
                                ],
                                                           FillColor='yellow')
                                self.Canvas.AddObject(poly)
                                print(T[room][par][i]["type"])
                            if T[room][par][i]["type"] == "r":
                                rect = FloatCanvas.Rectangle([
                                    int(T[room][par][i]["node_pos_x"]),
                                    -int(T[room][par][i]["node_pos_y"])
                                ], (8, 8),
                                                             FillColor='blue')
                                self.Canvas.AddObject(rect)
                                print(T[room][par][i]["type"])

            if room == "Blank_Area":
                points = [(int(T[room]['x1']), -int(T[room]['y1'])),
                          (int(T[room]['x2']), -int(T[room]['y2'])),
                          (int(T[room]['x3']), -int(T[room]['y3'])),
                          (int(T[room]['x4']), -int(T[room]['y4'])),
                          (int(T[room]['x5']), -int(T[room]['y5'])),
                          (int(T[room]['x6']), -int(T[room]['y6'])),
                          (int(T[room]['x7']), -int(T[room]['y7'])),
                          (int(T[room]['x8']), -int(T[room]['y8'])),
                          (int(T[room]['x9']), -int(T[room]['y9'])),
                          (int(T[room]['x10']), -int(T[room]['y10'])),
                          (int(T[room]['x11']), -int(T[room]['y11']))]

                blankarea = FloatCanvas.Polygon(points,
                                                LineWidth=4,
                                                LineColor='black',
                                                FillColor="#95bce7",
                                                FillStyle='Solid')
                self.Canvas.AddObject(blankarea)
Beispiel #11
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.CreateStatusBar()

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

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

        Point = (45, 40)

        ## create a few Objects:
        C = FloatCanvas.Circle((0, 0), 10, FillColor="Red")
        R = FloatCanvas.Rectangle((5, 5), (15, 8), FillColor="Blue")
        E = FloatCanvas.Ellipse((1.5, 1.5), (12, 8), FillColor="Purple")
        C2 = FloatCanvas.Circle((0, 5), 10, FillColor="cyan")
        T = FloatCanvas.Text("Group A", (5.5, 5.5),
                             Position="cc",
                             Size=16,
                             Weight=wx.BOLD,
                             Family=wx.SWISS)

        self.GroupA = FloatCanvas.Group((R, C, E))
        self.GroupA.AddObjects((C2, T))
        Canvas.AddObject(self.GroupA)

        ## create another Groups of objects

        R = FloatCanvas.Rectangle((15, 15), (10, 18), FillColor="orange")
        E = FloatCanvas.Ellipse((22, 28), (12, 8), FillColor="yellow")
        C = FloatCanvas.Circle((25, 20), 15, FillColor="Green")
        C2 = FloatCanvas.Circle((12, 22), 10, FillColor="cyan")
        T = FloatCanvas.Text("Group B", (19, 24),
                             Position="cc",
                             Size=16,
                             Weight=wx.BOLD,
                             Family=wx.SWISS)

        self.GroupB = FloatCanvas.Group((R, E, C, C2, T))
        Canvas.AddObject(self.GroupB)

        self.Groups = {"A": self.GroupA, "B": self.GroupB}

        # Add a couple of tools to the Canvas Toolbar

        tb = NC.ToolBar
        #        tb.AddSeparator()

        for Group in self.Groups:
            Button = wx.Button(tb, wx.ID_ANY, "Remove %s" % Group)
            tb.AddControl(Button)
            Button.Bind(wx.EVT_BUTTON,
                        lambda evt, group=Group: self.RemoveGroup(evt, group))
            Button = wx.Button(tb, wx.ID_ANY, "Replace%s" % Group)
            tb.AddControl(Button)
            Button.Bind(wx.EVT_BUTTON,
                        lambda evt, group=Group: self.ReplaceGroup(evt, group))
        tb.Realize()

        self.Show()
        Canvas.ZoomToBB()
Beispiel #12
0
 def rectangle(self, xy, wh, s):
   self.shape = fc.Rectangle(xy, wh)
   self.shape.pair = self
   self.create_text(s)
Beispiel #13
0
    def OnClickLeft(self,event):
        with open('testjson.json','r') as file1:
            T = json.load(file1)
        for room,dim in T.items():
            for par,dim1 in dim.items():
                if par == "topright_pos_y":
                    xx=int(T[room]["topright_pos_x"])
                    y1=int(T[room]["topright_pos_y"])
                    yy=0-y1  # changing the +Y-axis to -Y-axis
                    ll=int(T[room]["length"])
                    bb=int(T[room]["breadth"])

                    drline1 = FloatCanvas.Line([(xx,yy),(xx+ll,yy)],LineWidth=4,LineColor='black')
                    self.Canvas.AddObject(drline1)
                    drline2 = FloatCanvas.Line([(xx,yy),(xx,yy-bb)],LineWidth=4,LineColor='black')
                    self.Canvas.AddObject(drline2)
                    drline3 = FloatCanvas.Line([(xx+ll,yy),(xx+ll,yy-bb)],LineWidth=4,LineColor='black')
                    self.Canvas.AddObject(drline3)
                    drline4 = FloatCanvas.Line([(xx,yy-bb),(xx+ll,yy-bb)],LineWidth=4,LineColor='black')
                    self.Canvas.AddObject(drline4)
                self.Canvas.Draw()
                if par == "nodes":
                    for i in range(len(T[room]["nodes"])):
                        N.append(int(T[room][par][i]["node_id"]))
                        X.append(int(T[room][par][i]["node_pos_x"]))
                        Y.append(int(T[room][par][i]["node_pos_y"]))

                        #    Drawing Nodes
                        for node_par,node_val in T[room][par][i].items():
                            if T[room][par][i]["type"] == "s":
                                cir = FloatCanvas.Circle([int(T[room][par][i]["node_pos_x"]),-int(T[room][par][i]["node_pos_y"])],7,FillColor = 'red')
                                self.Canvas.AddObject(cir)
                            if T[room][par][i]["type"] == "p":
                                rect = FloatCanvas.Rectangle([int(T[room][par][i]["node_pos_x"]),-int(T[room][par][i]["node_pos_y"])],(8,8),FillColor='blue')
                                self.Canvas.AddObject(rect)
                            if T[room][par][i]["type"] == "k":
                                poly = FloatCanvas.Polygon([(int(T[room][par][i]["node_pos_x"])-4,-int(T[room][par][i]["node_pos_y"])-4),
                                                            (int(T[room][par][i]["node_pos_x"])+4,-int(T[room][par][i]["node_pos_y"])-4),
                                                            (int(T[room][par][i]["node_pos_x"])+4,-int(T[room][par][i]["node_pos_y"])+4),
                                                            (int(T[room][par][i]["node_pos_x"])-4,-int(T[room][par][i]["node_pos_y"])+4)],
                                                           FillColor='yellow')
                                self.Canvas.AddObject(poly)
                            if T[room][par][i]["type"] == "r":
                                poly1 = FloatCanvas.Polygon([(int(T[room][par][i]["node_pos_x"]),-int(T[room][par][i]["node_pos_y"])-7),
                                                             (int(T[room][par][i]["node_pos_x"])-7,-int(T[room][par][i]["node_pos_y"])+7),
                                                             (int(T[room][par][i]["node_pos_x"])+7,-int(T[room][par][i]["node_pos_y"])+7)],
                                                            FillColor='cyan')
                                self.Canvas.AddObject(poly1)

            # Drawing and highlighting the unused area
            if room == "Blank_Area":
                points = [(int(T[room]['x1']),-int(T[room]['y1'])),
                          (int(T[room]['x2']),-int(T[room]['y2'])),
                          (int(T[room]['x3']),-int(T[room]['y3'])),
                          (int(T[room]['x4']),-int(T[room]['y4'])),
                          (int(T[room]['x5']),-int(T[room]['y5'])),
                          (int(T[room]['x6']),-int(T[room]['y6'])),
                          (int(T[room]['x7']),-int(T[room]['y7'])),
                          (int(T[room]['x8']),-int(T[room]['y8'])),
                          (int(T[room]['x9']),-int(T[room]['y9'])),
                          (int(T[room]['x10']),-int(T[room]['y10'])),
                          (int(T[room]['x11']),-int(T[room]['y11']))]

                blankarea = FloatCanvas.Polygon(points,LineWidth=4,LineColor='black',FillColor = "SKY BLUE" , FillStyle='Solid')
                self.Canvas.AddObject(blankarea)

        # Making edges for distances < 100 between two nodes
        for i in range (len(N)):
            for j in range (len(N)):
                dist = self.distance_calc(X[i],-Y[i],X[j],-Y[j])
                if dist < 100:
                    self.Canvas.AddObject(FloatCanvas.Line([(X[i],-Y[i]),(X[j],-Y[j])], LineColor = 'Black', LineStyle='Solid',LineWidth=1))
        self.Canvas.Draw()
Beispiel #14
0
    def OnClickLeft(self, event):
        with open('testjson.json', 'r') as file1:
            T = json.load(file1)
        for room, dim in T.items():
            for par, dim1 in dim.items():
                if par == "topright_pos_y":
                    xx = int(T[room]["topright_pos_x"])
                    y1 = int(T[room]["topright_pos_y"])
                    yy = 0 - y1
                    ll = int(T[room]["length"])
                    bb = int(T[room]["breadth"])

                    drline1 = FloatCanvas.Line([(xx, yy), (xx + ll, yy)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline1)
                    self.Canvas.Draw()
                    drline2 = FloatCanvas.Line([(xx, yy), (xx, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline2)
                    self.Canvas.Draw()
                    drline3 = FloatCanvas.Line([(xx + ll, yy),
                                                (xx + ll, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline3)
                    self.Canvas.Draw()
                    drline4 = FloatCanvas.Line([(xx, yy - bb),
                                                (xx + ll, yy - bb)],
                                               LineWidth=4,
                                               LineColor='black')
                    self.Canvas.AddObject(drline4)
                    self.Canvas.Draw()
                self.Canvas.Draw()
                if par == "nodes":
                    for i in range(len(T[room]["nodes"])):
                        for node_par, node_val in T[room][par][i].items():
                            if T[room][par][i]["type"] == "s":
                                cir = FloatCanvas.Circle([
                                    int(T[room][par][i]["node_pos_x"]),
                                    0 - int(T[room][par][i]["node_pos_y"])
                                ],
                                                         7,
                                                         FillColor='red')
                                self.Canvas.AddObject(cir)
                            if T[room][par][i]["type"] == "p":
                                rect = FloatCanvas.Rectangle([
                                    int(T[room][par][i]["node_pos_x"]),
                                    0 - int(T[room][par][i]["node_pos_y"])
                                ], (8, 8),
                                                             FillColor='blue')
                                self.Canvas.AddObject(rect)
                            if T[room][par][i]["type"] == "k":
                                poly = FloatCanvas.Polygon(
                                    [(int(T[room][par][i]["node_pos_x"]) - 4,
                                      0 - int(T[room][par][i]["node_pos_y"]) -
                                      4),
                                     (int(T[room][par][i]["node_pos_x"]) + 4,
                                      0 - int(T[room][par][i]["node_pos_y"]) -
                                      4),
                                     (int(T[room][par][i]["node_pos_x"]) + 4,
                                      0 - int(T[room][par][i]["node_pos_y"]) +
                                      4),
                                     (int(T[room][par][i]["node_pos_x"]) - 4,
                                      0 - int(T[room][par][i]["node_pos_y"]) +
                                      4)],
                                    FillColor='yellow')
                                self.Canvas.AddObject(poly)
                            if T[room][par][i]["type"] == "r":
                                poly1 = FloatCanvas.Polygon(
                                    [(int(T[room][par][i]["node_pos_x"]), 0 -
                                      int(T[room][par][i]["node_pos_y"]) - 7),
                                     (int(T[room][par][i]["node_pos_x"]) - 7,
                                      0 - int(T[room][par][i]["node_pos_y"]) +
                                      7),
                                     (int(T[room][par][i]["node_pos_x"]) + 7,
                                      0 - int(T[room][par][i]["node_pos_y"]) +
                                      7)],
                                    FillColor='cyan')
                                self.Canvas.AddObject(poly1)
                    self.Canvas.Draw()
            if room == "Blank_Area":
                points = [(int(T[room]['x1']), 0 - int(T[room]['y1'])),
                          (int(T[room]['x2']), 0 - int(T[room]['y2'])),
                          (int(T[room]['x3']), 0 - int(T[room]['y3'])),
                          (int(T[room]['x4']), 0 - int(T[room]['y4'])),
                          (int(T[room]['x5']), 0 - int(T[room]['y5'])),
                          (int(T[room]['x6']), 0 - int(T[room]['y6'])),
                          (int(T[room]['x7']), 0 - int(T[room]['y7'])),
                          (int(T[room]['x8']), 0 - int(T[room]['y8'])),
                          (int(T[room]['x9']), 0 - int(T[room]['y9'])),
                          (int(T[room]['x10']), 0 - int(T[room]['y10'])),
                          (int(T[room]['x11']), 0 - int(T[room]['y11']))]

                blankarea = FloatCanvas.Polygon(points,
                                                LineWidth=4,
                                                LineColor='black',
                                                FillColor="SKY BLUE",
                                                FillStyle='Solid')
                self.Canvas.AddObject(blankarea)

            self.Canvas.Draw()