[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/gfx demo/papertest.py demo/color/colors.py ...
From: |
Janne V. Kujala |
Subject: |
[Gzz-commits] gzz/gfx demo/papertest.py demo/color/colors.py ... |
Date: |
Wed, 25 Sep 2002 07:28:12 -0400 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Janne V. Kujala <address@hidden> 02/09/25 07:28:11
Modified files:
gfx/demo : papertest.py
gfx/demo/color : colors.py
gfx/libcolor : spaces.py
gfx/libpaper : colors.py
Log message:
Experimenting with colors
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/papertest.py.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/color/colors.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libcolor/spaces.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/colors.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
Patches:
Index: gzz/gfx/demo/color/colors.py
diff -c gzz/gfx/demo/color/colors.py:1.4 gzz/gfx/demo/color/colors.py:1.5
*** gzz/gfx/demo/color/colors.py:1.4 Mon Sep 23 05:09:29 2002
--- gzz/gfx/demo/color/colors.py Wed Sep 25 07:28:11 2002
***************
*** 255,260 ****
--- 255,339 ----
"""))
+ class CIELABScene2:
+ def __init__(self):
+ self.angle = None
+ def key(self, k):
+ a = self.angle or 0
+ if k == "+": self.angle = a + 5
+ if k == "-": self.angle = a - 5
+ if k == "0": self.angle = None
+
+ pass
+ def scene(self, vs):
+ putnoc(vs, background((1.0,1.0,1.0)))
+
+ putnoc(vs, getDList("""
+ PushAttrib POLYGON_BIT ENABLE_BIT PopMatrix
+
+ Disable ALPHA_TEST
+ Disable DEPTH_TEST
+ Disable BLEND
+ Disable TEXTURE_2D
+ Color 1 0.1 1
+ """))
+
+ dsiz = 800
+ n = 16
+ for b in range(0,n):
+ l = 100 * (b+.5) /n
+
+ vs.put(GLRen.createLABSlice(0, l),
+ "labslice"+str(b),
+ 10, 600, 450, dsiz*.01, dsiz*.01)
+
+ cs = vs.coords.affineCoordsys(0, "foo", 10, 600, 450,
+ dsiz*.005, 0, 0, dsiz*.005)
+
+ vs.map.put(getDList("""
+ Color 1 1 1
+ Begin LINES
+ Vertex -100 0
+ Vertex +100 0
+ Vertex 0 -100
+ Vertex 0 +100
+ End
+ """), cs)
+
+ i = 0
+ for rgb in [ (1,0,0), (1,.5,0), (1,1,0), (.5,1,0),
+ (0,1,0), (0,1,.5), (0,1,1), (0,.5,1),
+ (0,0,1), (.5,0,1), (1,0,1), (1,0,.5) ]:
+ lab = RGBtoLAB(rgb)
+ vs.map.put(getDList("""
+ Color 0 0 0
+ PointSize %s
+ Begin POINTS
+ Vertex %s %s
+ End
+ """ % (10 - 5*i, lab[1], lab[2])), cs)
+ i = 1 - i
+
+ if self.angle != None:
+ vs.map.put(getDList("""
+ PushMatrix
+ Rotate %s 0 0 1
+ Color 1 1 1
+ Begin QUADS
+ Vertex 0 -150
+ Vertex 0 +150
+ Vertex 200 +150
+ Vertex 200 -150
+ End
+ PopMatrix
+ """ % (self.angle)), cs)
+
+
+ putnoc(vs, getDList("""
+ PopAttrib
+ """))
+
+
def lightcolor():
c = (0,0,0)
while reduce(lambda x,y:x+y, c) < 1.5:
***************
*** 316,319 ****
AbstractUpdateManager.setNoAnimation()
elif k == "3":
currentScene = CIELABScene()
! AbstractUpdateManager.setNoAnimation()
--- 395,401 ----
AbstractUpdateManager.setNoAnimation()
elif k == "3":
currentScene = CIELABScene()
! #AbstractUpdateManager.setNoAnimation()
! elif k == "4":
! currentScene = CIELABScene2()
! #AbstractUpdateManager.setNoAnimation()
Index: gzz/gfx/demo/papertest.py
diff -c gzz/gfx/demo/papertest.py:1.27 gzz/gfx/demo/papertest.py:1.28
*** gzz/gfx/demo/papertest.py:1.27 Mon Sep 23 04:37:04 2002
--- gzz/gfx/demo/papertest.py Wed Sep 25 07:28:11 2002
***************
*** 120,126 ****
def key(self, k):
oldseed = self.seed
if k >= "0" and k <= "9": self.seed = self.seed * 10 + int(k)
! if k == "BackSpace": self.seed = self.seed / 10
if k == "a":
self.aniso = 1 - self.aniso
self.reinit = 1
--- 120,126 ----
def key(self, k):
oldseed = self.seed
if k >= "0" and k <= "9": self.seed = self.seed * 10 + int(k)
! if k == "BackSpace" or k == "Backspace": self.seed = self.seed / 10
if k == "a":
self.aniso = 1 - self.aniso
self.reinit = 1
Index: gzz/gfx/libcolor/spaces.py
diff -c gzz/gfx/libcolor/spaces.py:1.5 gzz/gfx/libcolor/spaces.py:1.6
*** gzz/gfx/libcolor/spaces.py:1.5 Tue Sep 24 09:09:24 2002
--- gzz/gfx/libcolor/spaces.py Wed Sep 25 07:28:11 2002
***************
*** 77,85 ****
--- 77,96 ----
a = 100 * math.cos(ang)
b = 100 * math.sin(ang)
rgb = LABtoRGB([L,a,b])
+
+ return LABclamp(rgb)
+
+ def LABclamp(rgb):
+ """Clamp a RGB color into [0,1]^3 towards the CIELAB L-axis
+
+ rgb: the color in RGB709
+ returns: the clamped color in RGB709
+ """
if len(filter((lambda x: x<0 or x>1), rgb)) == 0:
return rgb
+ (L,a,b) = RGBtoLAB(rgb)
+
r = 0
bit = .5
for iter in range(0,10):
***************
*** 88,92 ****
r = r + bit
bit = bit * .5
return LABtoRGB([L,r*a,r*b])
!
!
--- 99,102 ----
r = r + bit
bit = bit * .5
return LABtoRGB([L,r*a,r*b])
!
Index: gzz/gfx/libpaper/colors.py
diff -c gzz/gfx/libpaper/colors.py:1.6 gzz/gfx/libpaper/colors.py:1.7
*** gzz/gfx/libpaper/colors.py:1.6 Tue Sep 24 09:09:24 2002
--- gzz/gfx/libpaper/colors.py Wed Sep 25 07:28:11 2002
***************
*** 1,6 ****
# Choosing colors and 3-dotproduct factors for papers.
! from gfx.libcolor.spaces import getRandomColor2
from math import atan2,pi
--- 1,6 ----
# Choosing colors and 3-dotproduct factors for papers.
! from gfx.libcolor.spaces import getRandomColor,getRandomColor2,RGBtoLAB
from math import atan2,pi
***************
*** 13,19 ****
--- 13,30 ----
rnd = self.rnd = java.util.Random(seed)
# currently, 4 colors
minlum = 80
+
+ # Just take alternating dark and light colors
while 1:
+ t = (100 - minlum)/2
+ col = [ getRandomColor(minlum + t - t * (i & 1),
+ 100 - t * (i & 1), rnd)
+ for i in range(0,4) ]
+ #if 180 - self._AB_angle(col) > 135 * rnd.nextFloat(): break
+ if self._AB_angle(col) < 180: break
+ print self._AB_angle(col)
+
+ while 0:
col = [
getRandomColor2(minlum,100, rnd),
getRandomColor2(minlum,minlum + (100-minlum)*0.7, rnd),
***************
*** 50,61 ****
return self._js(self.randvecs[ind % len(self.randvecs)])+" 1"
def _AB_angle(self, cols):
! print cols
getangle = lambda lab: 180 / pi * atan2(lab[2], lab[1])
angles = [ getangle(RGBtoLAB(col)) for col in cols ]
! print angles
angles.sort()
! print angles
n = len(angles)
maxd = 0
for i in range(0, n):
--- 61,72 ----
return self._js(self.randvecs[ind % len(self.randvecs)])+" 1"
def _AB_angle(self, cols):
! #print cols
getangle = lambda lab: 180 / pi * atan2(lab[2], lab[1])
angles = [ getangle(RGBtoLAB(col)) for col in cols ]
! #print angles
angles.sort()
! #print angles
n = len(angles)
maxd = 0
for i in range(0, n):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz/gfx demo/papertest.py demo/color/colors.py ...,
Janne V. Kujala <=