Dmitriy
Dmitriy
For ex.: dividing to Math.Line / Math.Quadratic / Math.Bezier is meaningless. Everything must in Curve.Math.
Some links to learn: https://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/23980479#23980479 http://edu.alnam.ru/book_cpsp.php?id=60 https://en.wikipedia.org/wiki/Centripetal_Catmull–Rom_spline http://nbviewer.jupyter.org/github/empet/geom_modeling/blob/master/Catmull-Rom-splines.ipynb http://nbviewer.jupyter.org/github/empet/geom_modeling/blob/master/FP-Bezier-Bspline.ipynb http://www.cs.cmu.edu/~462/projects/assn2/assn2/catmullRom.pdf
Algo: 1. Stroke the path. 2. Divide the path to even & odd parts. 3. Fill them or not. (maybe, custom functions deciding whether the part must be filled)
Todo: test what variation is faster And use it everywhere in the lib. Priority: webkit, firefox, edge. 1. Checking the property existence: hasOwnProperty, prop in obj, obj[prop] !== undefined. The...
1. More curves (Catmull-Rom, BSplines, Lagrange approx poly, bezier of custom power). Including relative and shorthand curves. 2. Curves utils. 3. Path utils based on curves utils. 4. Special utils...
Position of the element do not have to be cartesian coords always. Now: ```js ctx.rect(x, y, width, height, fill, stroke); ``` To think about: ```js // polar coords ctx.rect({ angle:...