Nope, Bresenham's no help, but a page about it tangentially mentioned
Wu's algorithm,
http://wikipedia.org/wiki/Xiaolin_Wu%27s_line_algorithm
which is perhaps what I'm looking for.
I don't need to keep my original divide-and-conquer algorithm
if it doesn't permit a feasible antialiasing enhancement. But I coded
it that way along with a bezier curve function, whose "natural"
implementation is similarly divide-and-conquer, though more complicated.
So I just used that same technique for several different drawing
functions. Easier to read them together that way. But now I need
to antialias them, and figured I'd focus on straight lines first.
However, I'm not sure how Wu's straight line algorithm would
translate to bezier curves, which is why I'd prefer to antialias
the divide-and-conquer algorithm if that's feasible.
The C code for the unantialiased (is that a word?) looks
something like, where grid is a struct with all relevant stuff,
and setpixel() and iround() do the obvious,
/* --- entry point --- */
int line_recurse ( grid *gp, double row1, double col1,
double row2, double col2 ) {
/* -------------------------------------------------------------------------
draw line in grid from point (row1,col1) to point (row2,col2)
-------------------------------------------------------------------------- */
double delrow = fabs(row2-row1), /* 0 if horizontal */
delcol = fabs(col2-col1), /* 0 if vertical */
tolerance = 0.5; /* draw when line converges to point*/
double midrow = 0.5*(row1+row2), /* midpoint row */
midcol = 0.5*(col1+col2); /* midpoint col */
/* -------------------------------------------------------------------------
recurse if either delta > tolerance
-------------------------------------------------------------------------- */
if ( delrow > tolerance /* row hasn't converged */
|| delcol > tolerance ) { /* or col hasn't converged */
line_recurse(gp,row1,col1,midrow,midcol); /* draw left half */
line_recurse(gp,midrow,midcol,row2,col2); /* draw right half */
return ( 1 ); }
/* -------------------------------------------------------------------------
draw converged point
-------------------------------------------------------------------------- */
setpixel(gp,iround(midrow),iround(midcol),0); /*set midrow,midcol pixel=0*/
return ( 1 ); } /* --- end-of-function line_recurse() --- */