4 ms·
Seconded. A lot of the video runtime is covering fairly well known topics, but there are moments of brilliance, where it made things "click" for me. The treatme
by raphlinus 4y ago
Seconded. A lot of the video runtime is covering fairly well known topics, but there are moments of brilliance, where it made things "click" for me. The treatment of the characteristic matrix and how the same matrix can derive both t and point parameterizations was particularly insightful.
- TheRealPomax 4y agoIndeed, there were a number of places where I had that "...this never occurred to me, this is fantastic" moment, too.
- jacobolus 4y agoGreat video. One fun basis for 3rd degree parametric polynomials that Freya skipped is a basis of values through which a polynomial can be interpolated. You can pick any 4 nodes in the interval, but I recommend [0, 0.25, 0.75, 1] for the least erratic behavior. Example: https://observablehq.com/@jrus/bez-cheb https://observablehq.com/@jrus/bez-cheb – try dragging the blue dots. Or for a higher degree polynomial, choose "Chebyshev nodes": equally spaced points on a semicircle projected down onto the diameter. This is one of the most "intuitive" control methods for manipulating a single parametric polynomial segment; the downside of this basis is that it doesn't facilitate matching boundary slope (etc.) between adjacent segments. The "Hermite" basis (which is equivalent to the Bernstein basis up to some constant scale factors in the 3rd degree case) is in a certain sense what you get when you instead pick the nodes [0, 0, 1, 1] to interpolate; that gives you a double root at each end so you can also pick the slope there. * * * Freya: if you are looking for a next project, animating Raph’s excellent PhD thesis would be a great public service. :-) https://levien.com/phd/thesis.pdf https://levien.com/phd/thesis.pdf For something a bit easier, chord-length parametrized splines are surprisingly effective, definitely worth playing around with. e.g. the natural cubic spline using chord length for parameter spacing. Implementation (but no demo) here: https://observablehq.com/@jrus/cubic-spline#parametric_NCS https://observablehq.com/@jrus/cubic-spline#parametric_NCS
- raphlinus 4y agoOoh, the Chebyshev basis is neat. I hadn't seen exactly that before. It reminds me a lot of the "shape control" technique[1] which is also similar to a basis function approach but has a bit of linear solving. Essentially, you get one point (usually at t = 0.5), and also the direction but not magnitudes of the tangents at the endpoints (G1, not C1). This is one of the better-performing existing techniques for offset curve, though does have stability problems (in particular, nasty behavior for a symmetric "S" curve). Regarding collaboration with Freya, if she is open to it, please get in touch. I do have some ideas. [1]: A New Shape Control and Classification for Cubic Bézier Curves, Yang and Huang, 1993, PDF cache: https://github.com/paperjs/paper.js/files/752955/A.New.Shape.Control.and.Classification.for.Cubic.Bezier.Curves.pdf https://github.com/paperjs/paper.js/files/752955/A.New.Shape...
- acegikmo 4y agoah gosh, a collab would be cool but I think you overestimate my knowledge in this area! I have no formal education or even an eighth of the vocabulary let alone mathematical background to contribute much ;-; I've been reading your paper on the spiro splines and a lot of it goes way over my head! I'd have to research every step along the way
- TheRealPomax 4y agoI'll let you in on a secret: neither do I. Thankfully, it turns out that "I need to know this to do a thing" is enough to get into it, and teaming up with folks who know way more than you do is basically the perfect learning opportunity =D (I originally dug into Beziers because I was several levels deep into "Processing.js's text-in-a-box fitting is bad, how can I fix that". Queue learning how OpenType works, how TTF/CFF works, how Beziers work, writing up a code playground tutorial before we really had code playgrounds, and then going "...I can use this for more, can't I?"... And thanks to that I've talked to far smarter people with formal training in both the type design and maths communities. I still consider myself an amateur, but an amateur with expert acquaintances =)
- jacobolus 4y ago