Changeset 3690:24f466bb82b4 in orange


Ignore:
Timestamp:
05/27/07 14:51:06 (7 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
99792e9513f60462b86efb4ee675873c39c09b99
Message:

optimizing ff algorithm

Location:
orange/OrangeWidgets/Prototypes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Prototypes/OWGraphDrawerCanvas.py

    r3684 r3690  
    4242        #print("add selection") 
    4343        if not ndx in self.selection: 
    44             self.selectionStyles[ndx] = self.curve(self.vertices[ndx]).symbol().brush().color().name() 
     44            (key, neighbours) = self.vertices[ndx] 
     45            self.selectionStyles[ndx] = self.curve(key).symbol().brush().color().name() 
    4546            newSymbol = QwtSymbol(QwtSymbol.Ellipse, QBrush(QColor(self.selectionStyles[ndx])), QPen(Qt.yellow, 3), QSize(10, 10)) 
    46             self.setCurveSymbol(self.vertices[ndx], newSymbol) 
     47            self.setCurveSymbol(key, newSymbol) 
    4748            self.selection.append(ndx); 
    48             self.visualizer.filter[ndx] = True 
     49            #self.visualizer.filter[ndx] = True 
    4950            self.replot() 
    5051            return True 
     
    5657        #print("remove selection") 
    5758        for v in self.selection: 
     59            (key, neighbours) = self.vertices[v] 
    5860            newSymbol = QwtSymbol(QwtSymbol.Ellipse, QBrush(QColor(self.selectionStyles[v])), QPen(QColor(self.selectionStyles[v])), QSize(6, 6)) 
    59             self.setCurveSymbol(self.vertices[v], newSymbol) 
     61            self.setCurveSymbol(key, newSymbol) 
    6062             
    6163        self.selection = [] 
    62         self.visualizer.unselectAll() 
     64        #self.visualizer.unselectAll() 
    6365        self.selectionStyles = {} 
    6466        self.replot() 
     
    119121         
    120122        for ndx in sel: 
    121             self.selectionStyles[ndx] = self.curve(self.vertices[ndx]).symbol().brush().color().name() 
     123            (key, neighbours) = self.vertices[ndx] 
     124            self.selectionStyles[ndx] = self.curve(key).symbol().brush().color().name() 
    122125            newSymbol = QwtSymbol(QwtSymbol.Ellipse, QBrush(QColor(self.selectionStyles[ndx])), QPen(Qt.yellow, 3), QSize(10, 10)) 
    123             self.setCurveSymbol(self.vertices[ndx], newSymbol) 
     126            self.setCurveSymbol(key, newSymbol) 
    124127            self.selection.append(ndx); 
    125128         
     
    183186        newY = self.invTransform(0, pos.y()) 
    184187 
    185  
     188        oldX = self.visualizer.coors[self.selectedVertex][0] 
     189        oldY = self.visualizer.coors[self.selectedVertex][1] 
     190         
    186191        self.visualizer.coors[self.selectedVertex][0] = newX 
    187192        self.visualizer.coors[self.selectedVertex][1] = newY 
    188                  
    189         self.setCurveData(self.vertices[self.selectedVertex], [newX], [newY]) 
    190          
    191         for e in range(self.nEdges): 
    192             (key,i,j) = self.edges[e] 
    193             edgesCurve = self.curve(self.edgesKey) 
    194              
    195             if i == self.selectedVertex: 
    196                 edgesCurve.xData[key*2] = newX 
    197                 edgesCurve.yData[key*2] = newY 
    198                 #currEdgeObj = self.curve(key) 
    199                 #self.setCurveData(key, [newX, currEdgeObj.x(1)], [newY, currEdgeObj.y(1)])                     
    200             elif j == self.selectedVertex: 
    201                 edgesCurve.xData[key*2 + 1] = newX 
    202                 edgesCurve.yData[key*2 + 1] = newY 
    203                 #currEdgeObj = self.curve(key) 
    204                 #self.setCurveData(key, [currEdgeObj.x(0), newX], [currEdgeObj.y(0), newY]) 
     193         
     194        (key, neighbours) = self.vertices[self.selectedVertex] 
     195        self.setCurveData(key, [newX], [newY]) 
     196         
     197        edgesCurve = self.curve(self.edgesKey) 
     198 
     199        for e in neighbours: 
     200            if (oldX == edgesCurve.xData[e*2]) and (oldY == edgesCurve.yData[e*2]): 
     201                edgesCurve.xData[e*2] = newX 
     202                edgesCurve.yData[e*2] = newY 
     203            elif (oldX == edgesCurve.xData[e*2 + 1]) and (oldY == edgesCurve.yData[e*2 + 1]): 
     204                edgesCurve.xData[e*2 + 1] = newX 
     205                edgesCurve.yData[e*2 + 1] = newY 
     206             
     207#        for e in range(self.nEdges): 
     208#            (key,i,j) = self.edges[e] 
     209#            edgesCurve = self.curve(self.edgesKey) 
     210#             
     211#            if i == self.selectedVertex: 
     212#                edgesCurve.xData[key*2] = newX 
     213#                edgesCurve.yData[key*2] = newY 
     214#                #currEdgeObj = self.curve(key) 
     215#                #self.setCurveData(key, [newX, currEdgeObj.x(1)], [newY, currEdgeObj.y(1)])                     
     216#            elif j == self.selectedVertex: 
     217#                edgesCurve.xData[key*2 + 1] = newX 
     218#                edgesCurve.yData[key*2 + 1] = newY 
     219#                #currEdgeObj = self.curve(key) 
     220#                #self.setCurveData(key, [currEdgeObj.x(0), newX], [currEdgeObj.y(0), newY]) 
    205221        self.setCurveData(self.edgesKey, edgesCurve.xData, edgesCurve.yData) 
    206222     
     
    237253                for ind in self.selection: 
    238254                    self.selectedVertex = ind 
    239                     self.selectedCurve = self.vertices[ind] 
     255                    (key, neighbours) = self.vertices[ind] 
     256                    self.selectedCurve = key 
    240257 
    241258                    vObj = self.curve(self.selectedCurve) 
     
    326343                    break 
    327344         
    328         if min < 10 and ndx != -1: 
     345        if min < 50 and ndx != -1: 
    329346            self.addSelection(ndx) 
    330347        else: 
     
    335352     
    336353    def updateData(self): 
     354        print "OWGraphDrawerCanvas/updateData..." 
    337355        self.removeDrawingCurves(removeLegendItems = 0) 
    338356        self.removeMarkers() 
     
    361379            yData.append(y1) 
    362380            yData.append(y2) 
    363                          
     381            # append edges to vertex descriptions 
    364382            self.edges[e] = (edgesCount,i,j) 
     383            (key, neighbours) = self.vertices[i] 
     384            if edgesCount not in neighbours: 
     385                neighbours.append(edgesCount) 
     386            self.vertices[i] = (key, neighbours) 
     387            (key, neighbours) = self.vertices[j] 
     388            if edgesCount not in neighbours: 
     389                neighbours.append(edgesCount) 
     390            self.vertices[j] = (key, neighbours) 
     391             
    365392            edgesCount += 1 
    366393         
     
    390417                self.setCurveSymbol(key, newSymbol) 
    391418             
    392             self.vertices[v] = key 
     419            (tmp, neighbours) = self.vertices[v] 
     420            self.vertices[v] = (key, neighbours) 
    393421            self.indexPairs[key] = v 
     422             
     423#        selectionX = [] 
     424#        selectionY = [] 
     425#        for v in self.selection:     
     426#            x1 = self.visualizer.coors[v][0] 
     427#            y1 = self.visualizer.coors[v][1] 
     428#             
     429#            selectionX.append(x1) 
     430#            selectionY.append(y1) 
     431#             
     432#        selectionCurve = self.insertCurve('selections') 
     433#        selectionBrush = QBrush(QBrush.NoBrush) 
     434#        selectionPen = QPen(Qt.yellow, 3) 
     435#        selectionSymbol = QwtSymbol(QwtSymbol.Ellipse, selectionBrush, selectionPen, QSize(10, 10)) 
     436#        self.setCurveSymbol(selectionCurve, selectionSymbol) 
     437#        self.setCurveStyle(selectionCurve, QwtCurve.NoCurve)         
     438#        self.setCurveData(selectionCurve, selectionX, selectionY) 
     439         
    394440         
    395441        # drew markers 
     
    423469                    lbl = lbl[:-1] 
    424470                    self.tips.addToolTip(x1, y1, lbl) 
     471        print "done." 
    425472             
    426473    def setVertexColor(self, attribute): 
     
    482529        self.vertices = {} 
    483530        for v in range(0, self.nVertices): 
    484             self.vertices[v] = None 
     531            self.vertices[v] = (None, []) 
    485532        print "done." 
    486533         
     
    492539        for (i,j) in visualizer.graph.getEdges(): 
    493540            self.edges[self.nEdges] = (None,i,j) 
     541             
     542#            (key, neighbours) = self.vertices[i] 
     543#            neighbours.append(j) 
     544#            self.vertices[i] = (key, neighbours) 
     545#            (key, neighbours) = self.vertices[j] 
     546#            neighbours.append(i) 
     547#            self.vertices[j] = (key, neighbours) 
     548             
    494549            self.nEdges += 1 
    495550         
  • orange/OrangeWidgets/Prototypes/OWNetwork.py

    r3684 r3690  
    286286        if self.visualize == None:   #grafa se ni 
    287287            return 
    288  
     288         
     289        k = 1.13850193174e-008 
     290        #k = 1.61735442033e-008 
     291        nodes = self.visualize.nVertices() 
     292        t = k * nodes * nodes 
     293        refreshRate = int(5.0 / t) 
     294        if refreshRate <   1: refreshRate = 1; 
     295        if refreshRate > 1500: refreshRate = 1500; 
     296        print "refreshRate: " + str(refreshRate) 
    289297        #najprej nakljucne koordinate za vsa vozlisca 
    290         refreshRate = 20 #- self.visualize.nVertices() / 50 + 100 
     298        #- self.visualize.nVertices() / 50 + 100 
    291299        #if refreshRate < 5: 
    292300        #    refreshRate = 5; 
    293301         
    294302        tolerance = 5 
    295         initTemp = 100 
    296  
     303        initTemp = 1000 
     304        #refreshRate = 1 
     305        initTemp = self.visualize.fruchtermanReingold(refreshRate, initTemp) 
     306        self.updateCanvas() 
     307         
    297308#        self.visualize.fruchtermanReingold(refreshRate, initTemp) 
    298309         
    299         while True: 
    300             print initTemp 
    301             initTemp = self.visualize.fruchtermanReingold(refreshRate, initTemp) 
    302              
    303             if (initTemp <= tolerance): 
    304                 #self.visualize.postProcess() 
    305                 print "OWNetwork/ff: updating canvas..." 
    306                 self.updateCanvas() 
    307                 return 
    308             print "OWNetwork/ff: updating canvas..." 
    309             self.updateCanvas() 
     310#        while True: 
     311#            print initTemp 
     312#            initTemp = self.visualize.fruchtermanReingold(refreshRate, initTemp) 
     313#             
     314#            if (initTemp <= tolerance): 
     315#                #self.visualize.postProcess() 
     316#                print "OWNetwork/ff: updating canvas..." 
     317#                self.updateCanvas() 
     318#                return 
     319#            print "OWNetwork/ff: updating canvas..." 
     320#            self.updateCanvas() 
    310321        print "done." 
    311322         
Note: See TracChangeset for help on using the changeset viewer.