Пример #1
0
 def posMoveByY(self,movelength):
     h,j,c = self.getRenderPos()
     j+=movelength
     r,g,b = jch2rgb([j,c,h])
     if  r>255 or g>255 or b>255:
         return
     if r<=255 and r>=0 and g<=255 and g>=0 and b<=255 and b>=0:
         self.setRenderPos([j,c,h])
         self.setPieceColor([r,g,b])
Пример #2
0
    def _setJCH(self, j, c, h):
        self._j = j
        self._c = c
        self._h = h

        self._r,self._g,self._b=map(lambda x:int(x),\
                                    jch2rgb([self._j,self._c,self._h]))
        while(self._r<0 or self._r>255 or\
              self._g<0 or self._g>255 or\
              self._b<0 or self._b>255):
            if self._c > 0:
                self._c -= 1
            elif self._c < 1:
                self._c += 1
            else:
                break
            self._r,self._g,self._b=map(lambda x:int(x),\
                                        jch2rgb([self._j,self._c,self._h]))
Пример #3
0
 def _respondC(self, c):
     self._c = c
     self._r, self._g, self._b = jch2rgb([self._j, self._c, self._h])
     while(self._r<0 or self._r>255 or\
           self._g<0 or self._g>255 or\
           self._b<0 or self._b>255):
         if self._c > 0:
             self._c -= 1
         elif self._c < 1:
             self._c += 1
         else:
             break
         self._r, self._g, self._b = jch2rgb([self._j, self._c, self._h])
     self._dockright.resetValue(self._j)
     self._docktop.resetValue(self._h)
     self._dockbottom.resetValue(self._c)
     self.update()
     self.ColorSender.emit(self, "JCH", [self._j, self._c, self._h])
Пример #4
0
 def maxChromebyJH(j, h):
     c = 0.0
     while True:
         R, G, B = jch2rgb([j, c, h])
         if R > 255 or G > 255 or B > 255 or R < 0 or G < 0 or B < 0 or j == 0 or j == 100:
             break
         c += 1.0
         #print(j,c,h,R,G,B)
     return c
Пример #5
0
 def posRotateBy(self,hue):
     h,j,c = self.getRenderPos()
     h+=hue
     while h>=360:
         h -=360
     while h<0:
         h += 360
     r,g,b = jch2rgb([j,c,h])
     if  r>255 or g>255 or b>255:
         return
     if r<=255 and r>=0 and g<=255 and g>=0 and b<=255 and b>=0:
         self.setRenderPos([j,c,h])
         self.setPieceColor([r,g,b])
Пример #6
0
 def _respondH(self, h):
     while h >= 360:
         h -= 360
     while h < 0:
         h += 360
     self._h = h
     self._r, self._g, self._b = jch2rgb([self._j, self._c, self._h])
     while(self._r<0 or self._r>255 or\
           self._g<0 or self._g>255 or\
           self._b<0 or self._b>255):
         if self._c > 0:
             self._c -= 1
         elif self._c < 0:
             self._c += 1
         else:
             break
         self._r, self._g, self._b = jch2rgb([self._j, self._c, self._h])
     self._dockright.resetValue(self._j)
     self._docktop.resetValue(self._h)
     self._dockbottom.resetValue(self._c)
     self.update()
     self.ColorSender.emit(self, "JCH", [self._j, self._c, self._h])
Пример #7
0
    def _respondJ(self, j):
        self._j = j
        self._r, self._g, self._b = jch2rgb([self._j, self._c, self._h])
        while(self._r<0 or self._r>255 or\
              self._g<0 or self._g>255 or\
              self._b<0 or self._b>255):
            if self._c > 0:
                self._c -= 1
            elif self._c < 0:
                self._c += 1
            else:
                break


#        self._j,self._c,self._h =map(lambda x:int(x),\
#                                     rgb2jch([self._r,self._g,self._b]))
            self._r, self._g, self._b = jch2rgb([self._j, self._c, self._h])
        self._dockright.resetValue(self._j)
        self._docktop.resetValue(self._h)
        self._dockbottom.resetValue(self._c)
        self.update()
        self.ColorSender.emit(self, "JCH", [self._j, self._c, self._h])
Пример #8
0
 def posMoveByZ(self,movelength):
     h,j,c = self.getRenderPos()
     height = c * np.sin(h*np.pi/180)
     width = c * np.cos(h*np.pi/180)
     c = (width**2 + (height+movelength)**2)**0.5
     h = np.arctan2(height+movelength,width)*180/np.pi
     while h>=360:
         h -=360
     while h<0:
         h += 360
     r,g,b = jch2rgb([j,c,h])
     if  r>255 or g>255 or b>255:
         return
     if r<=255 and r>=0 and g<=255 and g>=0 and b<=255 and b>=0:
         self.setRenderPos([j,c,h])
         self.setPieceColor([r,g,b])
Пример #9
0
    def posScaleBy(self,size):
        h,j,c = self.getRenderPos()

        jbc = j-50
        l = (jbc**2+c**2)**0.5
        proj = jbc/l
        proc = c/l
        l += size
        if l<=0:
            l=0.5
        jbc = l*proj
        c   = l*proc
        j = jbc+50

        r,g,b = jch2rgb([j,c,h])
        if  r>255 or g>255 or b>255:
            return
        if r<=255 and r>=0 and g<=255 and g>=0 and b<=255 and b>=0:
            self.setRenderPos([j,c,h])
            self.setPieceColor([r,g,b])