Talk:Composite Bézier curve
This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||||||
|
Isn't this a special case of a b-spline?
In B-spline it says that Bézier spline are a special case of b-spline. So it could be made more explicit here. MathMartin 13:02, 29 Nov 2004 (UTC)
AFAIK Bézier splines are related to B-splines in that a Bézier can be represented as a B-spline and a B-spline can be represented as a sequence of one or more Béziers. However, this is more relevant to Bézier curves. Raichu2 7 Aug 2004
You could say that, but you could say that about many things. I don't think it's worth bringing it up in this article. As in, a bézier spline could be considered a special case of a NURBS too, you could also say a hermite spline is a special case of NURBS, and you can play this game with many many different splines, as lots of them have the capability to create the same shapes as others. What makes a spline unique isn't exactly the shape of the output itself, but rather how it transforms the control points, and what the continuity properties of the output piecewise funtion is like, as well as its shape. So I think it's almost a misnomer to ever call "splines" equivalent just because they can generate the same shape FreyaHolmer (talk) 17:16, 30 July 2022 (UTC)
Bézier curve article
editI've removed details that were relevant to Bézier curves, which are also known as Bézier splines. Raichu2 7 Aug 2004
"Bezigon"
editThe "Vector graphics" article redirects to this article under the name "Bezigon." However, the latter term is not defined in this article.
I am still not certain what a "bezigon" is supposed to be. I would guess that it is a geometric shape composed of multiple segments which are Bezier curves. Will an expert please add an appropriate section to this article? 66.168.74.119 23:07, 13 June 2007 (UTC)
- Done. This article now has a definition for "bezigon". Your guess is right. --DavidCary (talk) 05:12, 10 February 2013 (UTC)
Gear headed
editI realize that this is only a stub but the article is way too gear-headed. Rigorous mathematical explanations are generally a good thing but, frankly, it is more important for math articles to include a brief segment that amounts to something like "In case you don't know much about this here's a short, practical description of this that you can use in everyday applications". In this case, providing a simple algebraic function that converts the real-valued control points and an interpolation variable into a real-valued interpolation result would make the article much more accessible (even that would be a subset of the general topic it would illustrate what is being discussed in a way that many more readers could understand it).
"spline" vs. "curve" confusion?
editThe article and subsequent discussions seems to lead to considerable confusion; especially to a reader who just wants to know what a "Bézier spline" is. It is my understanding that a Bézier spline is essentially a spline using Bézier curves, and not simply a synonym of "Bézier curve". The article as written might include that meaning, but would require interpretation. Perhaps a discussion of the distinction between a curve and a spline would be useful; especially in non-mathematical terms. 71.23.89.42 (talk) 11:27, 12 July 2010 (UTC)
merge
editI suggest merging beziergon into Bézier spline. As far as I can tell, whenever the last endpoint on the last Bézier curve of a Bézier spline is placed exactly on top of the first endpoint of the first Bézier curve of that Bézier spline, the result is a beziergon, and all beziergons can be formed in that way. The difference between them is small enough that I think it makes more sense to have one merged article cover both kinds of splines, with a short paragraph mentioning the subtle difference. --DavidCary (talk) 20:45, 4 July 2011 (UTC)
- Done. --DavidCary (talk) 17:43, 8 February 2013 (UTC)
General case
editThe algorithm described in the General Case section is really poor. The results look horrible for large angles. It cannot create the approximation discussed above it in the Using Four Curves section. Even a cursory glance reveals that there is no way to generate the sqrt(2) value. The cited article for that section says it is for very small angles only. But, even for small angles, there are superior ways to do this.
- The graph of the sinc function approximation is contained in an SVG file, with SVG using Bezier spline. The points defining the curves, as well as the segmentation of the graph into individual curves, were computed via an algorithm, with individual segments based on a least squares fit. It's not a simple algorithm, to say the least. --Aflafla1 (talk) 06:35, 1 May 2014 (UTC)
"Definition"
editIt would be good if the "Definition" would tell in a formal manner what a Bézier spline is, rather than presenting the silly claim that each spline were a sequence of Bernstein polynomials, which would imply that every polynomial, restricted to the closed unit interval, were a Bernstein polynomial.—According to the introduction, a Bézier spline is a composition of Bézier curves. So it might be considered a pair of splines each of which has the same knots and is a "Bernstein spline", i.e., a spline whose polynomial components are Bernstein polynomials. The Bernstein coefficients in the respective splines form the control points for the single Bézier curves.—Splines usually are required to be °highly differentiable" at the knots, therefore a Bézier spline may be required to satisfy a similar differentiability condition where composing Bézier curves meet. On the other hand, the introduction mentions the Béziergon that really has non-smooth corners ...
It would be good to clarify in the "Definition" whether Bézier splines and Béziergons are the same kind of thing or really very different things.—I do not want to edit the article because I don't know what terminology actually prevails. -- Uwe Lück (talk) 09:55, 15 August 2013 (UTC)
- Ok, any polynomial can be "written as a Bernstein polynomial". In the German Wikipedia, only the basis polynomials have that special name. However, having understood this, I see clearly that the article has two very different ideas of Bézier splines, as another commentator above already guessed ("spline" vs. "curve" confusion?).
- 1: Any maybe continuous mapping [ ] from some real interval [ ] into is a "curve" ([the] "plane curve" [consisting of points ]). Especially, polynomials and splines are curves already, and "spline curve" is just another term for "spline". When you "write the polynomials as Bernstein polynomials", the resulting spline suddenly is a "Bézier spline" -- it is "in Bézier form". This is the idea of the first sentence "a Bézier spline is a spline curve where each polynomial of the spline is in Bézier form", and the "Definition" just tells how to "write a spline in Bézier form". I doubt that this is a professional view important in computer graphics. It is very much at odds with the second sentence "In other words, a Bézier spline is simply a series of Bézier curves joined end to end where the last point of one curve coincides with the starting point of the next curve", and how could it help in approximating circles and describing the shape of characters in outline fonts?
- 2: A Bézier curve clearly is a differentiable mapping from a real interval (the closed unit interval) into -- a
plane curveparametric curve. This is what the second sentence and Approximating circular arcs is about. However, the article lacks a formal definition of a single curve that puts the small Bézier curves together. Especially, the "Definition" does not cover this issue.
- A connection between both views is that a "curve" becomes a
planeparametric curve ("in the plane") by considering . A more "psychological" connection is that you just see "depictions" of the graph of a curve or function, you don't think of the parametrization. Cf. the article Curve: "Various disciplines within mathematics have given the term different meanings depending on the area of study, so the precise meaning depends on context. However many of these meanings are special instances of the definition which follows. A curve is a topological space which is locally homeomorphic to a line. In everyday language, this means that a curve is a set of points which, near each of its points, looks like a line, up to a deformation. A simple example of a curve is the parabola, shown to the right. A large number of other curves have been studied in multiple mathematical fields. -- The term curve has several meanings in non-mathematical language as well. For example, it can be almost synonymous with mathematical function (as in learning curve), or graph of a function (as in Phillips curve)." - "2" seems to be more relevant, but I wonder whether "Bézier spline" is actually used by researchers (see References!?) or just an idea of Wikipedia authors. -- Uwe Lück (talk) 22:49, 15 August 2013 (UTC)
- Corrected the distinction between plane curve and parametric curve in my comment above. The quote from Curve above indicates that it is actually more common to consider a curve a certain set of points in the plane rather than a mapping into the plane. -- Uwe Lück (talk) 14:21, 17 August 2013 (UTC) ... again, plus clarifications in square brackets. -- Uwe Lück (talk) 08:34, 27 August 2013 (UTC)
All of the references in this article seem to be talking about a parametric x(t),y(t) shape -- -- where x(t) and y(t) are derived from a series the endpoints and control points stored in the font file (or some other source).
The parts of this article that lead people to think that a Bézier_spline has something to do with a curve or "a pair of splines each of which has the same knots" (?) are apparently misleading or incorrect.
How can we improve this article? --DavidCary (talk) 00:18, 5 December 2013 (UTC)
- The problem is that "Bézier spline" means various things to various people. Some use it simply as synonym for "Bézier curve", e.g. [1]. Others use it to mean a piecewise Bézier curve with C1 continuity [2] (more clearly said in [3]). Some of the examples given on this page only have C0 continuity; PS type 1 fonts in particular are created by filling such "paths". Note that Microsoft correctly calls these simply PolyBezier by analogy to polyline. Also, it's pretty wrong to describe METAFONT as drawn from Bézier (splines or whatever). METAFONT is much more (mathematically) complex even compared to PS Type 1 because METAFONT draws by (usually circular, but sometimes elliptical) stroking of Béziers, which mathematically are parallel curves. And parallel curves of Béziers aren't Béziers themselves. [4] JMP EAX (talk) 01:42, 15 August 2014 (UTC)
- The drawing in METAFONT actually relies more on Bézier curve outlines than the literature on fonts (and in particular the convert-MF-to-Type1 problem) suggests. It is true that the ideal model in METAFONT has an elliptic (usually circular) pen dragged along a Bézier curve, creating an outline that is not Bézier, but METAFONT always draws on an explicit pixel grid. In that case, using a true circular pen surprisingly turns out to give less even stroke width than using a polygonal pen tailored to the grid (Hobby, John D. (1985). Digitized Brush Trajectories (PhD thesis). Stanford University.), so METAFONT (but not MetaPost) actually uses polygonal pens for all draw operations; this is why the language makes a distinction between "future pen" (possibly elliptic, not yet fitted to the grid) and "pen" (always polygonal, even if visually indistinguishable from a circle). For a polygonal pen the outline is made up of Bézier curves, and under the hood METAFONT uses the same contour-filling operation for a draw command as it does for a fill command; the difference is that the stroke outline path generated is a lot more complicated—consists of several shorter segments and on the concave side of strokes typically intersects itself—which makes it entirely unsuitable for a PS Type1 font. But in the end, all shape drawing in METAFONT is by way of Bézier curve contours. 95.195.208.58 (talk) 10:04, 7 August 2019 (UTC)
- Also, some authors, Salomon for example, discuss C1-connecting Beziers without ever using the word "spline" [5]. JMP EAX (talk) 06:46, 15 August 2014 (UTC)
- More in-depth texts, e.g. [6] treat Cr joining of degree n Béziers under the title of Stärk's construction (and don't call them splines). I suggest turning this "Bézier spline" in a disambiguation page since it can mean various things to various people and treating the Cr joining under the more technical and unambiguous term (Stärk's construction). JMP EAX (talk) 06:57, 15 August 2014 (UTC)
- Also, some books like [7] note that C2 composite Beziers are B-splines. JMP EAX (talk) 07:21, 15 August 2014 (UTC)
- And [8] notes that "each cubic B-spline curve can be thought of as a collection of cubic Bézier curves. Comparing control points, each knot interval contributes two de Boor points and four Bézier points under this correspondence." JMP EAX (talk) 13:55, 15 August 2014 (UTC)
I've Done a rough cleaning. It needs more meat besides the application based on the aforementioned sources. JMP EAX (talk) 04:38, 19 August 2014 (UTC)
G vs C continuity
editThe sources I've look at diverge a bit on this. (See smoothness#Geometric_continuity for background.) I'm not entirely sure if the issue can be glossed over [as trivial reparametrization] or not. I'll have to read/think about it some more. JMP EAX (talk) 17:37, 19 August 2014 (UTC)
Using four curves
editThe section "Using four curves" starts with "Considering only the 90-degree unit-circular arc in the first quadrant, we define the endpoints A and B with control points A' and B' respectively, as:
A (0,1)
A' (k, 1)
B' (1, k)
B (1,0)"
Since the unit circle is mentioned, I expected the arc to start on the x-axis at (1,0) and end on the y-axis at (0,1), thus traveling in counter-clockwise direction. It took me a while to realize that A (the starting point) and B (the end point) were defined oppositely. Thus A starts on the y-axis and the arc travels clockwise to B on the x-axis. I feel the reader should be told explicitly about the direction.
General case
editThe general case section starts of with " Let the arc start at point A and end at point B placed at equal distances above and below the x-axis". Two questions:
- Does that mean that (A.y == (B.y * -1)) must be true?
- Why this restriction? — Preceding unsigned comment added by EliseVanLooij (talk • contribs) 12:13, 14 July 2016 (UTC)
These formulas are actually wrong. If anyone would check my work, I implemented the equations here: https://www.desmos.com/calculator/iidwqtcjzc I didn’t know where the author messed up, but I think it’s somewhere around equation 5.
Smooth Joining
editWhile it is written that "The geometric condition for C2 continuity is C1 continuity, with the additional constraint that the control points are equidistant from the endpoint", it seems these conditions are not enough for C2 continuity of cubic Beziers. Given a curve $[a0, a1, a2, a3]$, the curve $[b0, b1, b2, b3]$ concatenates smoothly if:
$b0 = a3$ $b1 = 2*a3 - a2$ $b2 = 4*a3 -4*a2 + a1$ and you can choose $b3$
- Done. It was pretty confusing before yeah, I rewrote the entire section, hopefully I got everything right and didn't go into too much detail! The section could be removed if we want to shorten it, but I think it's an interesting fact that it will collapse the entire spline into a single curve FreyaHolmer (talk) 19:44, 29 July 2022 (UTC)
"Reticulating splines" listed at Redirects for discussion
editAn editor has identified a potential problem with the redirect Reticulating splines and has thus listed it for discussion. This discussion will occur at Wikipedia:Redirects for discussion/Log/2022 August 24#Reticulating splines until a consensus is reached, and readers of this page are welcome to contribute to the discussion. signed, Rosguill talk 15:28, 24 August 2022 (UTC)