Take the Bresenham incremental line drawing code (Ventilator's post), and modify the "PutPixel" function.
Since that code draws every dot (incrementaly), simply add additional code that looks at adjacent pixels - average (or whatever..) the pixels, then store the calculated color back to the "original" (versus adjacent) pixel.
Hope it helps,
-Neut.