warvair / grafx2

Automatically exported from code.google.com/p/grafx2
0 stars 0 forks source link

Bezier curves are not accurate #439

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I had a look at the Curve drawing. There is an approximation done, we draw them 
as a succession of small straight lines. The number of steps is hardcoded to 
20, which gives very bad results on big splines.

Calculating the number of splines can be done from the size (perimeter or area) 
of the UpdateRect, which is already computed in the function anyway.

To compensate for the loss of speed, some other changes are possible :
 * x,y,old_x,old_y could be stored in x1, x2, y1, y2, since they are never used at the same time
 * The polyomial in the drawing loop can be written in a better way as : (((C1.t)+C2).t+C3).t+C4, to get 6 multiplications instead of 8 in the current loop.

Original issue reported on code.google.com by pulkoma...@gmail.com on 4 May 2011 at 5:33

GoogleCodeExporter commented 9 years ago

Original comment by pulkoma...@gmail.com on 6 Oct 2012 at 7:08