The paper addresses the problem of finding fast algorithms that accurately generate arbitrary curves on discrete lattices. The curves are supposed to have certain smoothness. No special assumption is made on their given representation (e.g. parametric, nonparametric, tabular). The proposed method consists of two stages, namely learning and drawing. In the learning stage, each curve is piecewise approximated by polynomials and then algorithms for generating the polynomials are derived. The algorithms are similar to those developed by Bresenham for straight lines and circular arcs. They are based on an integer decision variable and on an updating procedure. The decision process minimizes the error between the ideal curve and the digital one. The updating acts as an adaptive rounding off process that prevents the accumulation of errors. The drawing stage is very fast. Neither multiplies nor fractional integer operations are required. The entire curve is piecewise traced. The decision variable is initialized for each polynomial. Each new point is selected from two possible candidates, according to the sign of the decision variable. Two examples, the generation of a circular arc and of a sine-wave, are shown.