/[gzz]/gzz/gfx/demo/color/colors.py
ViewVC logotype

Diff of /gzz/gfx/demo/color/colors.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9 by jvk, Mon Oct 14 17:49:30 2002 UTC revision 1.10 by jvk, Tue Oct 15 08:28:35 2002 UTC
# Line 466  class HueScene: Line 466  class HueScene:
466          """          """
467            
468          for L in [5*r for r in range(10,20)]:          for L in [5*r for r in range(10,20)]:
469              r,g,b = LABtoRGB((L, 0, 0))              Y = LtoY(L)
470                r,g,b = YSTtoRGB((Y, 0, 0))
471              code += """              code += """
472                  Begin TRIANGLE_FAN                  Begin TRIANGLE_FAN
473                  Color %s %s %s                  Color %s %s %s
474                  Vertex 0 0                  Vertex 0 0
475              """ % (r, g, b)              """ % (r, g, b)
476    
477              for hue in [d * 5 for d in range(-18*2,18*2+1)]:              # Add orange color to the color circle
478                def getangle(f):
479                    # 0 = red, 120 = green, 240 = blue
480                    angles = [ 0, 30, 60, 120, 180, 240, 300, 360 ]
481                    n = len(angles) - 1
482                    f *= n / 360.0
483                    while f < 0: f += n
484                    index = int(f) % n
485                    fract = f - int(f)
486                    return (1 - fract) * angles[index] + fract * angles[index + 1]
487    
488                  angle0 = (hue / 180.0) * pi              for hue in [d * 5 for d in range(-18*2,18*2+1)]:
489                  angle = getangle((hue + 360) % 360 / 360.0)                  angle0 = hue / 180.0 * pi
490                    angle = getangle(hue) / 180.0 * pi
491                                    
492                  r,g,b = LABclamp(LABtoRGB((L, 100 * cos(angle), 100 * sin(angle))))                  r,g,b = clampSat( YSTtoRGB((Y, cos(angle), sin(angle))))
493                  lab = RGBtoLAB((r,g,b))                  yst = RGBtoYST((r,g,b))
494                  radius = sqrt(lab[1]**2 + lab[2]**2) * .015                  radius = sqrt(yst[1]**2 + yst[2]**2) * 1.5
495                                    
496                  x,y = radius * cos(angle0), radius * sin(angle0)                  x,y = radius * cos(angle0), radius * sin(angle0)
497    

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26