[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz/gfx demo/color/colors.py libcolor/spaces.py...,
Janne V. Kujala <=