È dato un metodo per generare una lista di rette in forma implicita (ax+by+c=0) codificate in float4 nel seguente modo: U.x = a, U.y = b, U.z = c (la quarta componente è nulla e non viene utilizzata).

Si scriva un programma che:

Un pixel (x,y) sta sulla retta di coefficienti (a,b,c) se a x + b y + c = 0. Per motivi di precisione numerica, si usi il controllo abs(a x + b y + c) < T dove T è una tolleranza costante (si ponga ad esempio T = 0.5f).

BONUS: disegnare le rette con antialiasing. Per ottenere l'effetto di antialiasing, si può colorare il singolo pixel (x, y) con un valore compreso tra 0 e maxval secondo la formula

fmin(maxval, fmax(0, maxval*(abs(a*x + b*y + c) - T)))

rispetto alla retta (a,b,c). Come si può gestire la vicinanza a più rette? (suggerimento: il primo valore nella formula, invece di essere maxval (bianco) dovrebbe essere …)

File ausiliari forniti: