Ejemplo n.º 1
0
Archivo: misc.py Proyecto: jerkos/metms
    def _get_color (self, value, asQColor=False, alpha=0.5):
        ''' Get interpolated color from value '''

        if not len(self.vcolors):
            return (0.,0.,0.,self.alpha)
        elif len(self.vcolors) == 1:
            return self.vcolors[0][1]
        elif value < 0.0:
            return self.vcolors[0][1]
        elif value > 1.0:
            return self.vcolors[-1][1]
        sup_color = self.vcolors[0]
        inf_color = self.vcolors[-1]
        for i in xrange (len(self.vcolors)-1):
            if value < self.vcolors[i+1][0]:
                inf_color = self.vcolors[i]
                sup_color = self.vcolors[i+1]
                break
        r = (value-inf_color[0])/(sup_color[0]-inf_color[0])
        if not asQColor:
            return (sup_color[1][0]*r + inf_color[1][0]*(1-r), 
                    sup_color[1][1]*r + inf_color[1][1]*(1-r),
                    sup_color[1][2]*r + inf_color[1][2]*(1-r))
        
        from PyQt4.QtGui import QColor
        q = QColor()
        q.setRedF(sup_color[1][0]*r + inf_color[1][0]*(1-r))
        q.setGreen(sup_color[1][1]*r + inf_color[1][1]*(1-r))
        q.setBlueF(sup_color[1][2]*r + inf_color[1][2]*(1-r))
        q.setAlphaF(alpha)
        return q
Ejemplo n.º 2
0
    def _get_color(self, value, asQColor=False, alpha=0.5):
        ''' Get interpolated color from value '''

        if not len(self.vcolors):
            return (0., 0., 0., self.alpha)
        elif len(self.vcolors) == 1:
            return self.vcolors[0][1]
        elif value < 0.0:
            return self.vcolors[0][1]
        elif value > 1.0:
            return self.vcolors[-1][1]
        sup_color = self.vcolors[0]
        inf_color = self.vcolors[-1]
        for i in xrange(len(self.vcolors) - 1):
            if value < self.vcolors[i + 1][0]:
                inf_color = self.vcolors[i]
                sup_color = self.vcolors[i + 1]
                break
        r = (value - inf_color[0]) / (sup_color[0] - inf_color[0])
        if not asQColor:
            return (sup_color[1][0] * r + inf_color[1][0] * (1 - r),
                    sup_color[1][1] * r + inf_color[1][1] * (1 - r),
                    sup_color[1][2] * r + inf_color[1][2] * (1 - r))

        from PyQt4.QtGui import QColor
        q = QColor()
        q.setRedF(sup_color[1][0] * r + inf_color[1][0] * (1 - r))
        q.setGreen(sup_color[1][1] * r + inf_color[1][1] * (1 - r))
        q.setBlueF(sup_color[1][2] * r + inf_color[1][2] * (1 - r))
        q.setAlphaF(alpha)
        return q