#!/usr/bin/python import sys import math f = open(sys.argv[1]) lines = [x.split() for x in f] f.close() res = int(sys.argv[2]) # pixel per unit data = {(round(float(l[0])*res), round(float(l[1])*res)) : float(l[5]) for l in lines} data[(0,0)] = 2.0 xmin = min([p[0] for p in data.keys()]) xmax = max([p[0] for p in data.keys()]) ymin = min([p[1] for p in data.keys()]) ymax = max([p[1] for p in data.keys()]) yrange=max([-ymin,ymax]) print("P3") print("{dx:d} {dy:d}".format(dx=xmax-xmin+1, dy=2*yrange+1)) print("255") for i in range(-yrange,yrange+1): for j in range(xmin,xmax+1): x = j y = i if i >= ymin and i <= ymax else -i if not (x,y) in data: value = 0 else: value = data[(x,y)]-1 value = 0 if value < 0 else 1 if value > 1 else value r = round(255*value**0.5) g = round(255*(value)**3) b = round(255*(math.sin(2*math.pi*value))) r = 0 if r < 0 else 255 if r > 255 else r g = 0 if g < 0 else 255 if g > 255 else g b = 0 if b < 0 else 255 if b > 255 else b print("%d %d %d" % (r,g,b))