Thank you so much for the illustrator plugin work! It was the first thing I thought of after reading and the reason I clicked on it in the first place. I wish you the best with it, if you ever need beta testers or if there's a way you need help I'd love to. (I run CC 18 on a Windows 10 64bit install).
If you're looking for more in-depth information on Bezier curves, I've found this document invaluable on more than one occasion, both for math and implementation suggestions: https://pomax.github.io/bezierinfo/
One trick I learned from a graphics editor: if you have two Bezier segments and want to make a smooth transition between them, put the two control points on either side of the center equidistant from the center and on a straight line. The curve will be tangent to that straight line at the center point, and will have the same curvature where they meet.
I'm wondering how well one could define curves by using the physical model of a strip of material, and allowing one to change the properties (stiffness) of the material at different points along the curve, or to insert more material at a given point. Of course, there should be the usual constraints that the strip should pass through a bunch of given (x,y) coordinates, and there could be constraint that "pins" the strip to a given (x,y) coordinate.
In a drawing program, the stiffness could be depicted by using grayscale values.
It's really interesting if you look at how CAD handles this stuff. It lets you set the degree of curvature-continuity/smoothness you want—and it kind of takes care of filling in the curve for you. You have to give up some direct control over the curve if you need it to meet these constraints.
Note for Chrome users: If you've enabled Strict Site Isolation in your chrome://flags (as mitigation for Spectre), it makes all of the sliders in these observablehq notebooks not work.
xfig has x-splines (cross splines), and I've always wondered why they never got more popular elsewhere. Basically, they have an extra parameter at each endpoint that allows you to smoothly pick between approximation, smooth interpolation, or sharp interpolation, as odd as that may sound:
Confusingly, there seem to be other splines called "X-splines" that appear to be completely unrelated, where the X seems to refer to the varying degree of the spline instead of just cubic.
So for what it’s worth here’s the three rules of thumb I’ve followed for about fifteen years in Illustrator:
1. Pull curve handles out to about 1/3 of the curve segment they control.
2. Don’t turn more than 90° between two control points.
3. Avoid S-curves between two control points.
Following these generally results in nice-looking curves that are easy to edit
A lot of “designers” these days like to present a rule of “only put your control points at 0/90/180/270° and keep your curve handles axis aligned”, which makes some degree of sense in the arena of making fonts, but results in incredibly hard to manage curves as you get further away from circles.
One great way to handle editing of complex shapes that use 90° extrema is to lean into Tunni lines[0] as a manipulation tool. Unfortunately these aren't present in Illustrator either, as far as I know, and is yet another reason why Illustrator's dominance as a bezier drawing software is less than warranted. Most font design software is better for drawing almost anything in bezier.
You're using 'tessellation' in a weird way. Anyway, if you want to calculate optimal knot positions to approximate a curve using some fixed number of straight (or polynomial) spline segments, there are a bunch of papers about that, or I think there's a relevant chapter in De Boor's book.
If you've enabled Strict Site Isolation in your Chrome flags (as mitigation for Spectre), it makes all of these observablehq notebook sliders not work. That's probably what's affecting you.
[+] [-] dhotson|8 years ago|reply
I'm also currently working on a plugin for Adobe Illustrator based on this. Screenshot: https://i.imgur.com/tIPTjLsr.png
[+] [-] ablaba|8 years ago|reply
[+] [-] matthberg|8 years ago|reply
[+] [-] berendk|8 years ago|reply
May I ask how you made the notebook interactive? Is this based on a jupyter notebook?
[+] [-] agumonkey|8 years ago|reply
[+] [-] unknown|8 years ago|reply
[deleted]
[+] [-] aoloe|8 years ago|reply
[+] [-] ttd|8 years ago|reply
[+] [-] aidos|8 years ago|reply
https://www.jasondavies.com/animated-bezier/
[+] [-] paulddraper|8 years ago|reply
[+] [-] laythea|8 years ago|reply
[+] [-] mark-r|8 years ago|reply
[+] [-] amelius|8 years ago|reply
In a drawing program, the stiffness could be depicted by using grayscale values.
[+] [-] dhotson|8 years ago|reply
Here's what different degrees of curvature continuity look like: http://help.autodesk.com/cloudhelp/2017/ENU/Alias-Tutorials/...
.. or in 2d: http://help.autodesk.com/cloudhelp/2017/ENU/Alias-Tutorials/...
To make smooth surfaces you just need the tangents to line up. This is called G1.
But if you also want surface reflections to look smooth you need a higher degree of curvature continuity. G2 or higher.
http://help.autodesk.com/cloudhelp/2017/ENU/Alias-Tutorials/...
[+] [-] mkeeter|8 years ago|reply
It doesn't talk about dynamically varying stiffness along the curve, but is otherwise a very detailed dive into splines.
[+] [-] Tomte|8 years ago|reply
[+] [-] speps|8 years ago|reply
[+] [-] jacobolus|8 years ago|reply
[+] [-] wiso|8 years ago|reply
[+] [-] ghusbands|8 years ago|reply
[+] [-] jordigh|8 years ago|reply
http://wiki.povray.org/uploaded/5/5e/LeForgeronXSplines-10.1...
Confusingly, there seem to be other splines called "X-splines" that appear to be completely unrelated, where the X seems to refer to the varying degree of the spline instead of just cubic.
[+] [-] egypturnash|8 years ago|reply
1. Pull curve handles out to about 1/3 of the curve segment they control. 2. Don’t turn more than 90° between two control points. 3. Avoid S-curves between two control points.
Following these generally results in nice-looking curves that are easy to edit
A lot of “designers” these days like to present a rule of “only put your control points at 0/90/180/270° and keep your curve handles axis aligned”, which makes some degree of sense in the arena of making fonts, but results in incredibly hard to manage curves as you get further away from circles.
[+] [-] hbosch|8 years ago|reply
0. http://help.fontlab.com/fontlab-vi/Tunni-Lines/
[+] [-] Cenk|8 years ago|reply
[+] [-] pasta|8 years ago|reply
[+] [-] ldjb|8 years ago|reply
There are some interactive widgets, but if you can forgo those, here is a screenshot of that page: https://screenshots.firefox.com/CoUJDgqyX5NtfC6v/beta.observ...
[+] [-] jashkenas|8 years ago|reply
[+] [-] virtualritz|8 years ago|reply
That way you can draw better looking curves when approximating them with (a limited number) of (straight) segments.
[+] [-] jacobolus|8 years ago|reply
[+] [-] bagospanners|8 years ago|reply
[+] [-] Kiro|8 years ago|reply
[+] [-] ghusbands|8 years ago|reply
[+] [-] joehan|8 years ago|reply