debug version of nrender, the last version is available here
from kandinsky import set_pixel as set,fill_rect as rect from ion import keydown as k from time import sleep from random import randint as r,random import rp def pix(x,y,c=(255,)*3,e=1): if (320>x>0-e)and(222>y>0-e): if e==1:set(x,y,c) else:rect(x,y,e,e,c) def line(x0,y0,x1,y1,c=(255,)*3,e=1,p=1): dx,dy=x1-x0,y1-y0 steps=max(abs(dx),abs(dy)) # print(steps) if steps==0:pix(x0,y0,c,e);return xinc,yinc,d=dx/steps,dy/steps,c for i in range(0,steps+1,int(steps/p)): if c==-1:d=gradiant(i*1530/steps) pix(x0,y0,d,e) x0+=round(xinc/p) y0+=round(yinc/p) def gradiant(n): n%=1530 p=n%255 print("p=n%255",i) i=1 while n>=i*255+1: i+=1 p=n-255*(i-1) print("p=while",i,"\n") if n<256:r,g,b=255,0,p # De rouge a magenta elif n<511:r,g,b=255-p,0,255 # De magenta a bleu elif n<766:r,g,b=0,p,255 # De bleu a cyan elif n<1021:r,g,b=0,255,255-p # De cyan a vert elif n<1276:r,g,b=p,255,0 # De vert a jaune elif n<1531:r,g,b=255,255-p,0 # De jaune a rouge return (r,g,b) #assert gradiant(0)==(255,0,0) #assert gradiant(1)==(255,0,1) gradiant(0) gradiant(255) gradiant(256) #print(gradiant(0),"\n") #print(gradiant(10),"\n") #print(gradiant(255),"\n") #print(gradiant(256),"\n") #print(gradiant(1275),"\n") #print(gradiant(1276),"\n") #print(gradiant(1529),"\n") #print(gradiant(1530),"\n") #print(gradiant(1531),"\n") #for i in range(5): # for j in range(320): # rect(j,i*44,1,44,gradiant(j+306*i)) #line(0,0,100,200,-1,2,0.5)