
from pylab import *
from math import *
from CieXYZ import *
from XYZ2RGB import *
cie=CIEXYZ("../ciexyz/ciexyz31.txt")
cie.setIlluminant("CN",6500)
sRGB=XYZ2RGB([0.64,0.33],[0.3,0.6],[0.15,0.06],[0.3127,0.329])
adobeRGB = XYZ2RGB([0.64,0.33],[0.21,0.71],[0.15,0.06],[0.3127,0.329])
def couleur(p):
    delta=p*500 
    def Rf(L):
        return 0.5*(1+math.cos(6.2831853/L*delta))
    XYZ=cie.spectralF2XYZ(Rf)
    return adobeRGB.rgbN2G(XYZ)
im=[]
n=400
for k in range(n):
    p=-10.0+20.0/float(n)*float(k)
    RGB=couleur(p)
    im.append(RGB)
figure(1,figsize=(12,4)) 
imshow([im],aspect=5,extent=[-10,10,0,1])
            

def couleur(N,p):
    delta=p*500
    def Rf(L):
        sinus=math.sin(3.1415926*delta/L)
        if sinus==0:
            return 1 
        else:
            a=math.sin(N*3.1415926*delta/L)/sinus/float(N)
            return a*a
    XYZ=cie.spectralF2XYZ(Rf)
    return adobeRGB.rgbN2G(XYZ)
im=[]
n=400
for k in range(n):
    p=-10.0+20.0/float(n)*float(k)
    RGB=couleur(10,p)
    im.append(RGB)
figure(2,figsize=(12,4))
imshow([im],aspect=5,extent=[-10,10,0,1])
            
