3 ms·
"Without getting too into the math weeds, at a high-level, we call approaches like Bezier curves and Hobby splines implicit curves" I don't think of Bézier cur
by gugagore 7y ago
"Without getting too into the math weeds, at a high-level, we call approaches like Bezier curves and Hobby splines implicit curves"
I don't think of Bézier curves as implicit in any way. There's an explicit equation for the curve, as a parameter of "time" (0 at the beginning of the curve, 1 at the end, increasing monotonically in between).
- Jasper_ 7y agoYes. Technically they are parametric curves but you can turn any parametric curve into an implicit one (the reverse not being true), so I chose to leave out that small detail for narrative purposes.
- romwell 7y ago>Technically they are parametric curves It would make the already excellent article even better if you simply linked to the relevant[1] Wikipedia page. Similarly, for 3D, you really want parametric surfaces[2], which NURBS are. For the readers: The key difference: to plot an implicit curve, you need to solve an equation, which is a whole another can of worms. Solving equations is hard. For high-degree equations, there are no formulas for solutions! To plot a parametric curve, you just need to plug numbers into some formulas. That's much easier! The problem discussed in the article is that even if you have an explicit parametrization, answering questions like "Where does this curve/surface intersect this ray?" involves equation-solving. And that's hard. As would be something like "represent this curve/surface with segments/triangles of uniform size". TL;DR: implicit is something for which you don't have a formula. Bezier and NURBS have easy formulas; they are parametric. [1]https://en.wikipedia.org/wiki/Parametric_equation#Explicit_equations https://en.wikipedia.org/wiki/Parametric_equation#Explicit_e... [2]https://en.wikipedia.org/wiki/Parametric_surface https://en.wikipedia.org/wiki/Parametric_surface
- Jasper_ 7y agoThe implicit form is what's used when rasterizing, because we have the opposite problem: we don't care about the value of a specific bezier function at specific time t, we care about whether the pixel at location x,y is on inside the path created by a number of bezier segments (but it's even more complicated, because of winding order). That can't be solved with the parametric form alone.
- romwell 7y agoIndeed, but the terminology used in mathematics is very clear. So perhaps add this snippet to the article? Another thing possibly of value: where Bezier curves come from - automotive design. The machines that were tracing these curves out needed to solve the forward problem (where should the tool head be at time t?), and the designers needed an easy way to change the shape of the curve. The Bezier splines were (and still are) a great solution to that problem. For that reason, it's easy to convert Bezier splines into G-Code for either plotter - or, these days - 3D printer. Also, sampling the parametric form does give you a polygon (or a polygonal mesh), which is easier to work with. But that's another can of worms.
- delhanty 7y ago>That can't be solved with the parametric form alone. That's not strictly true - you could choose a numerical algorithm like Newton-Raphson. 3D B-rep modelers will typically solve x,y,z on curve that way because many of the curves won't have an implicit form of any reasonable low degree. In fact, some of them won't have an implicit form at all.
- gugagore 7y agoI understand and appreciate striking a balance between precision and a good story. But I thought in this case, perhaps this was a big deal. I thought one of the reasons why 2D graphics and 3D graphics are so different is because of ... is it topology? ... For any arbitrarily complex curve, I think I can give you a 1D parameterization for it. At least to some desired accuracy. What condition is required of a surface so that you can do the same, with a 2D parameterization?
- stevesimmons 7y ago> For any arbitrarily complex curve, I think I can give you a 1D parameterization for it. If you haven't see it already, read this paper by Laurent Boue: "Real numbers, data science and chaos: How to fit any dataset with a single parameter" https://arxiv.org/abs/1904.12320 https://arxiv.org/abs/1904.12320
- romwell 7y agoYup, the entire point of Bezier splines is that they are very easy to explicitly evaluate, and somewhat intuitive for humans to control. The gist of a Bezier curve is "Take weighted averages, repeatedly".
- alephr 7y agoThe curve isn't necessarily implicit or explicit; multiple forms exist. Think of the standard form of a line versus a parametric form. For beziers you might explicitly evaluate them at time t if you're doing animation of implicitly evaluate them at position x,y if you're rendering them.