gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gfx demo/color/colors.py libcolor/spaces.py...


From: Janne V. Kujala
Subject: [Gzz-commits] gzz/gfx demo/color/colors.py libcolor/spaces.py...
Date: Mon, 30 Sep 2002 06:18:54 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Janne V. Kujala <address@hidden>        02/09/30 06:18:54

Modified files:
        gfx/demo/color : colors.py 
        gfx/libcolor   : spaces.py 
        gfx/libpaper   : colors.py papermill.py 

Log message:
        Choose colors from ROYGCBM palette

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/color/colors.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libcolor/spaces.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/colors.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/papermill.py.diff?tr1=1.31&tr2=1.32&r1=text&r2=text

Patches:
Index: gzz/gfx/demo/color/colors.py
diff -c gzz/gfx/demo/color/colors.py:1.7 gzz/gfx/demo/color/colors.py:1.8
*** gzz/gfx/demo/color/colors.py:1.7    Sun Sep 29 06:56:07 2002
--- gzz/gfx/demo/color/colors.py        Mon Sep 30 06:18:54 2002
***************
*** 2,7 ****
--- 2,8 ----
  
  # Look at some colors...
  import math
+ from math import sin,cos,pi,sqrt
  import java
  from java.lang import Math
  
***************
*** 451,456 ****
--- 452,504 ----
            PopAttrib
        """))
  
+ 
+ class HueScene:
+     def key(self, k):
+         pass
+     
+     def scene(self, vs):
+       putnoc(vs, background((0.5,0.5,0.5)))
+ 
+         code = """
+             Translate 5 1 0
+         """
+     
+         for L in [5*r for r in range(10,20)]:
+             r,g,b = LABtoRGB((L, 0, 0))
+             code += """
+                 Begin TRIANGLE_FAN
+                 Color %s %s %s
+                 Vertex 0 0
+             """ % (r, g, b)
+ 
+             for hue in [d * 10 for d in range(-18,18+1)]:
+ 
+                 angle0 = (hue / 180.0) * pi
+                 angle = getangle((hue + 360) % 360 / 360.0)
+                 
+                 r,g,b = LABclamp(LABtoRGB((L, 100 * cos(angle), 100 * 
sin(angle))))
+                 lab = RGBtoLAB((r,g,b))
+                 radius = sqrt(lab[1]**2 + lab[2]**2) * .015
+                 
+                 x,y = radius * cos(angle0), radius * sin(angle0)
+ 
+                 code += """
+                     Color %s %s %s
+                     Vertex %s %s
+                 """ % (r, g, b, x, y)
+ 
+             
+             code += """
+                 End
+                 #Translate +2.2 0 0
+             """
+                 
+       vs.put(getDList(code), "foobar", 10, 0, 0, 150, 150);
+         
+             
+ 
+ 
  currentScene = CIELABScene()
  
  def globalkey(k):
***************
*** 466,469 ****
--- 514,520 ----
        #AbstractUpdateManager.setNoAnimation()
      elif k == "4":
          currentScene = CIELABScene2()
+       #AbstractUpdateManager.setNoAnimation()
+     elif k == "5":
+         currentScene = HueScene()
        #AbstractUpdateManager.setNoAnimation()
Index: gzz/gfx/libcolor/spaces.py
diff -c gzz/gfx/libcolor/spaces.py:1.8 gzz/gfx/libcolor/spaces.py:1.9
*** gzz/gfx/libcolor/spaces.py:1.8      Fri Sep 27 10:05:08 2002
--- gzz/gfx/libcolor/spaces.py  Mon Sep 30 06:18:54 2002
***************
*** 33,38 ****
--- 33,59 ----
              XYZn[2] * pow((LAB[0] + 16.0) / 116 - LAB[2] / 200.0, 3) ]
      return XYZtoRGB(XYZ);
  
+ def LABhue(RGB):
+     LAB = RGBtoLAB(RGB)
+     return math.atan2(LAB[2],LAB[1])
+ 
+ 
+ colors = [ (1,0,0), (1,.5,0),
+            (1,1,0), #(.5,1,0),
+            (0,1,0), (0,1,1),
+            (0,0,1), (1,0,1) ]
+ angles = map(LABhue, colors)
+ angles = map(lambda a: a + (a < 0) * 2 * math.pi, angles)
+ angles.sort()
+ angles += [angles[0] + 2 * math.pi]
+ 
+ def getangle(f):
+     f *= len(colors)
+     index = int(f) % len(colors)
+     fract = f - int(f)
+     return (1 - fract) * angles[index] + fract * angles[index + 1]
+ 
+ 
  def abdiff(a, b):
      u = RGBtoLAB(a)
      v = RGBtoLAB(b)
Index: gzz/gfx/libpaper/colors.py
diff -c gzz/gfx/libpaper/colors.py:1.11 gzz/gfx/libpaper/colors.py:1.12
*** gzz/gfx/libpaper/colors.py:1.11     Sun Sep 29 04:33:37 2002
--- gzz/gfx/libpaper/colors.py  Mon Sep 30 06:18:54 2002
***************
*** 1,6 ****
  # Choosing colors and 3-dotproduct factors for papers.
  
! from gfx.libcolor.spaces import 
getRandomColor,getRandomColor2,RGBtoLAB,LABtoRGB,LABclamp
  
  from math import sin,cos,atan2,pi,log
  from random import Random,shuffle
--- 1,6 ----
  # Choosing colors and 3-dotproduct factors for papers.
  
! from gfx.libcolor.spaces import 
getRandomColor,getRandomColor2,RGBtoLAB,LABtoRGB,LABclamp,getangle
  
  from math import sin,cos,atan2,pi,log
  from random import Random,shuffle
***************
*** 19,25 ****
          colors = 8
        minlum = 80
          #huerange = (45 + rnd.nextGaussian() * 45)
!         huerange = rnd.lognormvariate(log(60), .3)
  
          # gnuplot code for plotting huerange distribution:
          # sigma=.4; mu=log(60); plot [0:360] 1 / (x * sqrt(2 * pi * 
sigma**2)) * exp(-(log(x)-mu)**2 / (2 * sigma**2))
--- 19,26 ----
          colors = 8
        minlum = 80
          #huerange = (45 + rnd.nextGaussian() * 45)
!         #rnd.lognormvariate(log(0.001), .3)
!         huerange = rnd.normalvariate(0,1) * 90
  
          # gnuplot code for plotting huerange distribution:
          # sigma=.4; mu=log(60); plot [0:360] 1 / (x * sqrt(2 * pi * 
sigma**2)) * exp(-(log(x)-mu)**2 / (2 * sigma**2))
***************
*** 31,41 ****
          # (Note: color complementing should be done in RGB space)
  
          # Sample hues uniformly from the range shifted to a random angle
!         huerange *= pi / 180
!         hue0 = rnd.nextDouble() * 2*pi
!         hues = ([hue0, hue0 + huerange] + 
!                 [hue0 + rnd.nextDouble() * huerange for i in range(2,colors)])
!         shuffle(hues, rnd.nextDouble)
  
          # Take one half dark colors and one half light colors
          lumrange = 100 - minlum
--- 32,51 ----
          # (Note: color complementing should be done in RGB space)
  
          # Sample hues uniformly from the range shifted to a random angle
!         if 0:
!             huerange *= pi / 180
!             hue0 = rnd.nextDouble() * 2*pi
!             hues = ([hue0, hue0 + huerange] + 
!                     [hue0 + rnd.nextDouble() * huerange for i in 
range(2,colors)])
!             shuffle(hues, rnd.nextDouble)
!         else:
!             huerange /= 360
!             hue0 = rnd.nextDouble()
!             hues = ([hue0, hue0 + huerange] + 
!                     [hue0 + rnd.nextDouble() * huerange for i in 
range(2,colors)])
!             hues = map(getangle, hues)
!             shuffle(hues, rnd.nextDouble)
!         
  
          # Take one half dark colors and one half light colors
          lumrange = 100 - minlum
Index: gzz/gfx/libpaper/papermill.py
diff -c gzz/gfx/libpaper/papermill.py:1.31 gzz/gfx/libpaper/papermill.py:1.32
*** gzz/gfx/libpaper/papermill.py:1.31  Fri Sep 27 07:53:04 2002
--- gzz/gfx/libpaper/papermill.py       Mon Sep 30 06:18:54 2002
***************
*** 1,6 ****
--- 1,8 ----
  dbg = 0
  initialized = 0
  
+ import gfx.libpaper.colors
+ reload(gfx.libpaper.colors)
  from gfx.libpaper.colors import Colors
  
  from gzz.gfx.gl import GL,GLRen,Paper,PaperMill




reply via email to

[Prev in Thread] Current Thread [Next in Thread]