Пример #1
0
	def painter(vp, frame):
		if(is_list(vp[0])):
			def get_depth(x,y,dir):
				global spread
				nonlocal pixels
				for c in range(spread):
					ox = round(x+dir*(-0.3*spread+c))
					if(ox>=0 and ox<viewport_size):
						if type(pixels[ox,y]) is int: #this is a workaround for black/white pictures.
							curr = pixels[ox,y]
						else:
							curr = pixels[ox, y][0]
						d = abs(curr - 255*c/spread)
						if(d<=tolerance*255):
							return curr
				return 255
			def ana_out_loop(port, count):
				nonlocal img
				size = graphics.get_image_size(img)
				MAX_X = size[0]
				MAX_Y = size[1]
				tsize = graphics.get_image_size(port)
				TMAX_X = tsize[0]
				TMAX_Y = tsize[1]
				tgtpixels = graphics.get_pixels(port)
				inv_transform = inverse_transform_posn(frame)
				# for y in range(MAX_Y):
					# for x in range(MAX_X):
						# col = get_depth(x,y,count)
						# if(col>255*limit):
							# col = 999
						# else:
							# col = frame.z1 + (frame.z2 - frame.z1) * col
						# if col<=255:
							# transposn = transform(Posn(x,y))
							# if(transposn.x>=0 and transposn.y>=0 and transposn.x<TMAX_X and transposn.y<TMAX_Y):
								# tgtpixels[transposn.x, transposn.y] = (col,col,col)
				#sorry, no supersampling. Takes long enough as it is.
				for y in range(TMAX_Y):
					for x in range(TMAX_X):
						orig = inv_transform(Posn(x,y))
						rx = round(orig.x)
						ry = round(orig.y)
						if (rx>=0 and ry>=0 and rx<MAX_X and ry<MAX_Y): #within bounds
							col = get_depth(rx, ry, count)
							if(col>255*limit):
								col = 999
							else:
								col = round(frame.z1*255 + (frame.z2 - frame.z1) * col)
							if(col<=255):
								#tgtpixels[x,y] = (col, col, col)
								tgtpixels[x,y] = (min(col, tgtpixels[x,y][0]),min(col, tgtpixels[x,y][1]),min(col, tgtpixels[x,y][2]))
				graphics.pixels_to_canvas(port)
			pixels = graphics.get_pixels(img)
			for count, port in enumerate(vp):
				ana_out_loop(port, ((2*count)/(len(vp)-1) - 1))
		else:
			transform = inverse_transform_posn(frame)
			graphics.blit_pixels(vp, transform, graphics.get_pixels(img), graphics.get_image_size(vp), graphics.get_image_size(img), True, frame.z1, frame.z2) #block level image transfer
Пример #2
0
 def ana_out_loop(port, count):
     nonlocal img
     size = graphics.get_image_size(img)
     MAX_X = size[0]
     MAX_Y = size[1]
     tsize = graphics.get_image_size(port)
     TMAX_X = tsize[0]
     TMAX_Y = tsize[1]
     tgtpixels = graphics.get_pixels(port)
     inv_transform = inverse_transform_posn(frame)
     # for y in range(MAX_Y):
     # for x in range(MAX_X):
     # col = get_depth(x,y,count)
     # if(col>255*limit):
     # col = 999
     # else:
     # col = frame.z1 + (frame.z2 - frame.z1) * col
     # if col<=255:
     # transposn = transform(Posn(x,y))
     # if(transposn.x>=0 and transposn.y>=0 and transposn.x<TMAX_X and transposn.y<TMAX_Y):
     # tgtpixels[transposn.x, transposn.y] = (col,col,col)
     #sorry, no supersampling. Takes long enough as it is.
     for y in range(TMAX_Y):
         for x in range(TMAX_X):
             orig = inv_transform(Posn(x, y))
             rx = round(orig.x)
             ry = round(orig.y)
             if (rx >= 0 and ry >= 0 and rx < MAX_X
                     and ry < MAX_Y):  #within bounds
                 col = get_depth(rx, ry, count)
                 if (col > 255 * limit):
                     col = 999
                 else:
                     col = round(frame.z1 * 255 +
                                 (frame.z2 - frame.z1) * col)
                 if (col <= 255):
                     #tgtpixels[x,y] = (col, col, col)
                     tgtpixels[x,
                               y] = (min(col, tgtpixels[x, y][0]),
                                     min(col, tgtpixels[x, y][1]),
                                     min(col, tgtpixels[x, y][2]))
     graphics.pixels_to_canvas(port)
Пример #3
0
			def ana_out_loop(port, count):
				nonlocal img
				size = graphics.get_image_size(img)
				MAX_X = size[0]
				MAX_Y = size[1]
				tsize = graphics.get_image_size(port)
				TMAX_X = tsize[0]
				TMAX_Y = tsize[1]
				tgtpixels = graphics.get_pixels(port)
				inv_transform = inverse_transform_posn(frame)
				# for y in range(MAX_Y):
					# for x in range(MAX_X):
						# col = get_depth(x,y,count)
						# if(col>255*limit):
							# col = 999
						# else:
							# col = frame.z1 + (frame.z2 - frame.z1) * col
						# if col<=255:
							# transposn = transform(Posn(x,y))
							# if(transposn.x>=0 and transposn.y>=0 and transposn.x<TMAX_X and transposn.y<TMAX_Y):
								# tgtpixels[transposn.x, transposn.y] = (col,col,col)
				#sorry, no supersampling. Takes long enough as it is.
				for y in range(TMAX_Y):
					for x in range(TMAX_X):
						orig = inv_transform(Posn(x,y))
						rx = round(orig.x)
						ry = round(orig.y)
						if (rx>=0 and ry>=0 and rx<MAX_X and ry<MAX_Y): #within bounds
							col = get_depth(rx, ry, count)
							if(col>255*limit):
								col = 999
							else:
								col = round(frame.z1*255 + (frame.z2 - frame.z1) * col)
							if(col<=255):
								#tgtpixels[x,y] = (col, col, col)
								tgtpixels[x,y] = (min(col, tgtpixels[x,y][0]),min(col, tgtpixels[x,y][1]),min(col, tgtpixels[x,y][2]))
				graphics.pixels_to_canvas(port)
Пример #4
0
    def painter(vp, frame):
        def ana_out_loop(port, count):
            inverse_transform = inverse_transform_posn(frame)
            tgtpixels = graphics.get_pixels(port)
            size = graphics.get_image_size(port)
            MAX_X = size[0]
            MAX_Y = size[1]
            tgtpixels = graphics.get_pixels(port)
            for y in range(MAX_Y):
                for x in range(MAX_X):
                    posn = inverse_transform(Posn(x, y))
                    col = get_depth(posn.x, posn.y, count, frame)
                    if (col > 1):
                        col = 1
                    col = round(col * 255)
                    if (col < 255):
                        #tgtpixels[x,y] = (col, col, col)
                        tgtpixels[x, y] = (min(col, tgtpixels[x, y][0]),
                                           min(col, tgtpixels[x, y][1]),
                                           min(col, tgtpixels[x, y][2]))
            graphics.pixels_to_canvas(port)

        if (is_list(vp[0])):
            for count, port in enumerate(vp):
                ana_out_loop(port, ((2 * count) / (len(vp) - 1) - 1))
        else:
            inverse_transform = inverse_transform_posn(frame)
            tgtpixels = graphics.get_pixels(vp)
            size = graphics.get_image_size(vp)
            MAX_X = size[0]
            MAX_Y = size[1]
            for y in range(MAX_Y):
                for x in range(MAX_X):
                    posn = inverse_transform(Posn(x, y))
                    color = depth_fun(posn.x, posn.y)
                    if (color != 1):
                        color = frame.z1 + ((frame.z2 - frame.z1) * color)
                    if (color > 1):
                        color = 1
                    color = round(color * 255)
                    if (color < 255
                        ):  #assuming that white is the transparency color
                        #tgtpixels[x,y] = (color, color, color)
                        tgtpixels[x, y] = (min(color, tgtpixels[x, y][0]),
                                           min(color, tgtpixels[x, y][1]),
                                           min(color, tgtpixels[x, y][2]))
            graphics.pixels_to_canvas(vp)
Пример #5
0
		def ana_out_loop(port, count):
			inverse_transform = inverse_transform_posn(frame)
			tgtpixels = graphics.get_pixels(port)
			size = graphics.get_image_size(port)
			MAX_X = size[0]
			MAX_Y = size[1]
			tgtpixels = graphics.get_pixels(port)
			for y in range(MAX_Y):
				for x in range(MAX_X):
					posn = inverse_transform(Posn(x,y))
					col = get_depth(posn.x, posn.y, count, frame)
					if (col>1):
						col = 1
					col = round(col*255)
					if(col<255):
						#tgtpixels[x,y] = (col, col, col)
						tgtpixels[x,y] = (min(col, tgtpixels[x,y][0]), min(col, tgtpixels[x,y][1]), min(col, tgtpixels[x,y][2]))
			graphics.pixels_to_canvas(port)
Пример #6
0
	def painter(vp, frame):
		def ana_out_loop(port, count):
			inverse_transform = inverse_transform_posn(frame)
			tgtpixels = graphics.get_pixels(port)
			size = graphics.get_image_size(port)
			MAX_X = size[0]
			MAX_Y = size[1]
			tgtpixels = graphics.get_pixels(port)
			for y in range(MAX_Y):
				for x in range(MAX_X):
					posn = inverse_transform(Posn(x,y))
					col = get_depth(posn.x, posn.y, count, frame)
					if (col>1):
						col = 1
					col = round(col*255)
					if(col<255):
						#tgtpixels[x,y] = (col, col, col)
						tgtpixels[x,y] = (min(col, tgtpixels[x,y][0]), min(col, tgtpixels[x,y][1]), min(col, tgtpixels[x,y][2]))
			graphics.pixels_to_canvas(port)
		if(is_list(vp[0])):
			for count, port in enumerate(vp):
				ana_out_loop(port, ((2*count)/(len(vp)-1) - 1))
		else:
			inverse_transform = inverse_transform_posn(frame)
			tgtpixels = graphics.get_pixels(vp)
			size = graphics.get_image_size(vp)
			MAX_X = size[0]
			MAX_Y = size[1]
			for y in range(MAX_Y):
				for x in range(MAX_X):
					posn = inverse_transform(Posn(x,y))
					color = depth_fun(posn.x, posn.y)
					if(color != 1):
						color = frame.z1 + ((frame.z2 - frame.z1) * color)
					if (color>1):
						color = 1
					color = round(color*255)
					if(color<255): #assuming that white is the transparency color
						#tgtpixels[x,y] = (color, color, color)
						tgtpixels[x,y] = (min(color, tgtpixels[x,y][0]), min(color, tgtpixels[x,y][1]), min(color, tgtpixels[x,y][2]))
			graphics.pixels_to_canvas(vp)