Comment
Comment by areop
The right answer for a API to draw a line like you describe is to provide every possible way to draw a line since you never know which one the user wants to use. Granularity is one of the general five properties of every good API, of course it is not always good to provide all possible ways since it hurts compactness.
The best I have ever heared about API design was a talk from Casey Muratori:
http://mollyrocket.com/casey/stream_0028.html