Is it possible to build a circle with quadratic Bézier curves?
$begingroup$
i'm searching for a curve type with a minimum of functionality and maximum of usability. I run into quadratic Bézier curves and i wonder, if its possible to draw a circle with it.
circle bezier-curve
$endgroup$
add a comment |
$begingroup$
i'm searching for a curve type with a minimum of functionality and maximum of usability. I run into quadratic Bézier curves and i wonder, if its possible to draw a circle with it.
circle bezier-curve
$endgroup$
add a comment |
$begingroup$
i'm searching for a curve type with a minimum of functionality and maximum of usability. I run into quadratic Bézier curves and i wonder, if its possible to draw a circle with it.
circle bezier-curve
$endgroup$
i'm searching for a curve type with a minimum of functionality and maximum of usability. I run into quadratic Bézier curves and i wonder, if its possible to draw a circle with it.
circle bezier-curve
circle bezier-curve
asked Jul 21 '13 at 21:36
VektorwegVektorweg
128115
128115
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
$begingroup$
No, you can only produce some good approximations for sufficiently small arcs.
Bezier curves can be parametrized as $(x(t),y(t))$ where $x,y$ are polynomials in $t$. To run on a circle arc, wlog. the unit circle, we must have $x(t)^2+y(t)^2=1$ for all $t$. If wlog. $d:=deg xge deg y$ then $x(t)^2+y(t)^2$ is a polynomial of degree $2d$ and can conincide with the constant $1$ only if $d=0$. That is: A nonconstant Bézier curve (even of higher than quadratic degree) cannot describe an arc.
$endgroup$
add a comment |
$begingroup$
That depends on what you mean. If you're looking for a planar Bézier curve which describes a circular arc in that plane, the existing answers are correct that it isn't possible.
However, if you're willing to consider a Bézier curve in 3D which forms a perfect circular arc when viewed from the correct point (i.e. with a perspective projection; this is also known as "rational Bézier curves"). E.g. these notes show how to construct any conic section with rational quadratic Béziers.[Now 404s and not in archive.org].
And these notes handle the case of a circular arc explicitly:
This works for $theta < pi$ (or $theta = pi$ using homogeneous coordinates); for a full circle, you need more than one arc.
$endgroup$
$begingroup$
just curious: what software did you use to draw the diagram?
$endgroup$
– Jason S
Feb 23 '14 at 23:24
$begingroup$
@JasonS, I took a screenshot of the linked PDF.
$endgroup$
– Peter Taylor
Feb 23 '14 at 23:26
add a comment |
$begingroup$
Quadratic Bezier curves are parabolas, so can only represent circular arcs approximately.
Cubic Bezier curves are very popular (e.g. they are used in Postscript, SVG, and most drawing and CAD programs). Again, they can only represent circular arcs approximately, but the approximation might be good enough for your needs. Many drawing programs use four 90-degree cubic segments to represent a complete circle, and I'm not aware of any flood of accuracy complaints.
You can look at this site for a simple method that uses four cubic Bezier curves and gives an approximation whose maximum error is 0.0196% of the radius. This might be good enough for your application.
Higher degree Bezier curves can produce even better approximations, of course, but the computational costs are obviously higher. Look at this answer for details.
Rational quadratic curves can exactly represent circular arcs (and other conic section curves).
A final thought ... if you want to be able to represent circles exactly, why not use circular arcs as your basic curve form. In 2D, you can have a curve defined by its end-points and a "bulge" parameter. When the bulge is non-zero, you get a circular arc, and when its zero you get a straight line. To get "free-form" curves, you just string together these basic curves. Circular arcs make many computations easy: they are easy to intersect, easy to offset, and its easy to compute their arclength and distance to them. These four basic computations are much more difficult with quadratic Bezier curves.
Another final thought :-) : if you draw a circle using sine and cosine functions on a computer, it's still an approximation. It's just that the approximation is hidden inside your computer's implementation of the sine and cosine functions.
$endgroup$
1
$begingroup$
"and I'm not aware of any flood of accuracy complaints" somewhat related: this snafu on the New York Regents Exams.
$endgroup$
– Willie Wong
Jul 22 '13 at 8:34
$begingroup$
@ Willie. Interesting discussion. Thanks. I think the poor approximation comes from lack of skill and knowledge, not from weaknesses in the approximation technique. In other words, user error. I'm sure it's possible to construct cubic Bezier curves that are indistinguishable from sine function graphs on a printed page (if you know what you're doing).
$endgroup$
– bubba
Jul 23 '13 at 13:09
add a comment |
$begingroup$
"a curve type with a ... maximum of usability"
reminds me that Don Lancaster once said,
"I feel the "best" method for simple
and graceful curves involves using a
cubic spline technique."
(He specifically prefers cubic Bézier splines over quadratic Bézier splines).
A single cubic Bézier curves can exactly fit any straight line, any parabola
(including any quadratic Bézier curve),
and certain other curves.
Is it possible to build a circle with quadratic Bézier curves?
Any smooth curve can be approximated by a series of cubic curves in a way that is visually indistinguishable from the original smooth curve.
(Each cubic curve, in turn, can be approximated by a series of a few quadratic Bézier curves in a way that is visually indistinguishable from the cubic curve or from the original smooth curve).
Most "circles" you see on a computer screen are, in fact, drawn using a Bezier curve approximation.
All the shapes you see in typography -- including circles and circular arcs -- are approximated by cubic Bézier curves (in PostScript, Asymptote, Metafont, and SVG fonts) or quadratic Bézier curves (in TrueType fonts).
It is possible to create an approximation of a circle (or a sine wave) to an accuracy of about 1 part in a thousand with 4 cubic Bezier curves, and to about 4 parts per million with 8 Bezier curves. See "Wikibooks: fixed-point",
"Wikipedia: Bezigon circle approximation",
"Approximating Cubic Bezier Curves with a few Quadratic Bezier curves in Flash MX",
and
"Don Lancaster's Cubic Spline Library"
-- which in turn includes "Approximating a Circle or an Ellipse Using Bezier Cubic Splines" and "How to determine the control points of a Bézier curve that approximates a small circular arc".
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f449035%2fis-it-possible-to-build-a-circle-with-quadratic-b%25c3%25a9zier-curves%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
No, you can only produce some good approximations for sufficiently small arcs.
Bezier curves can be parametrized as $(x(t),y(t))$ where $x,y$ are polynomials in $t$. To run on a circle arc, wlog. the unit circle, we must have $x(t)^2+y(t)^2=1$ for all $t$. If wlog. $d:=deg xge deg y$ then $x(t)^2+y(t)^2$ is a polynomial of degree $2d$ and can conincide with the constant $1$ only if $d=0$. That is: A nonconstant Bézier curve (even of higher than quadratic degree) cannot describe an arc.
$endgroup$
add a comment |
$begingroup$
No, you can only produce some good approximations for sufficiently small arcs.
Bezier curves can be parametrized as $(x(t),y(t))$ where $x,y$ are polynomials in $t$. To run on a circle arc, wlog. the unit circle, we must have $x(t)^2+y(t)^2=1$ for all $t$. If wlog. $d:=deg xge deg y$ then $x(t)^2+y(t)^2$ is a polynomial of degree $2d$ and can conincide with the constant $1$ only if $d=0$. That is: A nonconstant Bézier curve (even of higher than quadratic degree) cannot describe an arc.
$endgroup$
add a comment |
$begingroup$
No, you can only produce some good approximations for sufficiently small arcs.
Bezier curves can be parametrized as $(x(t),y(t))$ where $x,y$ are polynomials in $t$. To run on a circle arc, wlog. the unit circle, we must have $x(t)^2+y(t)^2=1$ for all $t$. If wlog. $d:=deg xge deg y$ then $x(t)^2+y(t)^2$ is a polynomial of degree $2d$ and can conincide with the constant $1$ only if $d=0$. That is: A nonconstant Bézier curve (even of higher than quadratic degree) cannot describe an arc.
$endgroup$
No, you can only produce some good approximations for sufficiently small arcs.
Bezier curves can be parametrized as $(x(t),y(t))$ where $x,y$ are polynomials in $t$. To run on a circle arc, wlog. the unit circle, we must have $x(t)^2+y(t)^2=1$ for all $t$. If wlog. $d:=deg xge deg y$ then $x(t)^2+y(t)^2$ is a polynomial of degree $2d$ and can conincide with the constant $1$ only if $d=0$. That is: A nonconstant Bézier curve (even of higher than quadratic degree) cannot describe an arc.
answered Jul 21 '13 at 21:43
Hagen von EitzenHagen von Eitzen
281k23272505
281k23272505
add a comment |
add a comment |
$begingroup$
That depends on what you mean. If you're looking for a planar Bézier curve which describes a circular arc in that plane, the existing answers are correct that it isn't possible.
However, if you're willing to consider a Bézier curve in 3D which forms a perfect circular arc when viewed from the correct point (i.e. with a perspective projection; this is also known as "rational Bézier curves"). E.g. these notes show how to construct any conic section with rational quadratic Béziers.[Now 404s and not in archive.org].
And these notes handle the case of a circular arc explicitly:
This works for $theta < pi$ (or $theta = pi$ using homogeneous coordinates); for a full circle, you need more than one arc.
$endgroup$
$begingroup$
just curious: what software did you use to draw the diagram?
$endgroup$
– Jason S
Feb 23 '14 at 23:24
$begingroup$
@JasonS, I took a screenshot of the linked PDF.
$endgroup$
– Peter Taylor
Feb 23 '14 at 23:26
add a comment |
$begingroup$
That depends on what you mean. If you're looking for a planar Bézier curve which describes a circular arc in that plane, the existing answers are correct that it isn't possible.
However, if you're willing to consider a Bézier curve in 3D which forms a perfect circular arc when viewed from the correct point (i.e. with a perspective projection; this is also known as "rational Bézier curves"). E.g. these notes show how to construct any conic section with rational quadratic Béziers.[Now 404s and not in archive.org].
And these notes handle the case of a circular arc explicitly:
This works for $theta < pi$ (or $theta = pi$ using homogeneous coordinates); for a full circle, you need more than one arc.
$endgroup$
$begingroup$
just curious: what software did you use to draw the diagram?
$endgroup$
– Jason S
Feb 23 '14 at 23:24
$begingroup$
@JasonS, I took a screenshot of the linked PDF.
$endgroup$
– Peter Taylor
Feb 23 '14 at 23:26
add a comment |
$begingroup$
That depends on what you mean. If you're looking for a planar Bézier curve which describes a circular arc in that plane, the existing answers are correct that it isn't possible.
However, if you're willing to consider a Bézier curve in 3D which forms a perfect circular arc when viewed from the correct point (i.e. with a perspective projection; this is also known as "rational Bézier curves"). E.g. these notes show how to construct any conic section with rational quadratic Béziers.[Now 404s and not in archive.org].
And these notes handle the case of a circular arc explicitly:
This works for $theta < pi$ (or $theta = pi$ using homogeneous coordinates); for a full circle, you need more than one arc.
$endgroup$
That depends on what you mean. If you're looking for a planar Bézier curve which describes a circular arc in that plane, the existing answers are correct that it isn't possible.
However, if you're willing to consider a Bézier curve in 3D which forms a perfect circular arc when viewed from the correct point (i.e. with a perspective projection; this is also known as "rational Bézier curves"). E.g. these notes show how to construct any conic section with rational quadratic Béziers.[Now 404s and not in archive.org].
And these notes handle the case of a circular arc explicitly:
This works for $theta < pi$ (or $theta = pi$ using homogeneous coordinates); for a full circle, you need more than one arc.
edited Dec 12 '18 at 12:38
answered Jul 23 '13 at 11:25
Peter TaylorPeter Taylor
9,05712342
9,05712342
$begingroup$
just curious: what software did you use to draw the diagram?
$endgroup$
– Jason S
Feb 23 '14 at 23:24
$begingroup$
@JasonS, I took a screenshot of the linked PDF.
$endgroup$
– Peter Taylor
Feb 23 '14 at 23:26
add a comment |
$begingroup$
just curious: what software did you use to draw the diagram?
$endgroup$
– Jason S
Feb 23 '14 at 23:24
$begingroup$
@JasonS, I took a screenshot of the linked PDF.
$endgroup$
– Peter Taylor
Feb 23 '14 at 23:26
$begingroup$
just curious: what software did you use to draw the diagram?
$endgroup$
– Jason S
Feb 23 '14 at 23:24
$begingroup$
just curious: what software did you use to draw the diagram?
$endgroup$
– Jason S
Feb 23 '14 at 23:24
$begingroup$
@JasonS, I took a screenshot of the linked PDF.
$endgroup$
– Peter Taylor
Feb 23 '14 at 23:26
$begingroup$
@JasonS, I took a screenshot of the linked PDF.
$endgroup$
– Peter Taylor
Feb 23 '14 at 23:26
add a comment |
$begingroup$
Quadratic Bezier curves are parabolas, so can only represent circular arcs approximately.
Cubic Bezier curves are very popular (e.g. they are used in Postscript, SVG, and most drawing and CAD programs). Again, they can only represent circular arcs approximately, but the approximation might be good enough for your needs. Many drawing programs use four 90-degree cubic segments to represent a complete circle, and I'm not aware of any flood of accuracy complaints.
You can look at this site for a simple method that uses four cubic Bezier curves and gives an approximation whose maximum error is 0.0196% of the radius. This might be good enough for your application.
Higher degree Bezier curves can produce even better approximations, of course, but the computational costs are obviously higher. Look at this answer for details.
Rational quadratic curves can exactly represent circular arcs (and other conic section curves).
A final thought ... if you want to be able to represent circles exactly, why not use circular arcs as your basic curve form. In 2D, you can have a curve defined by its end-points and a "bulge" parameter. When the bulge is non-zero, you get a circular arc, and when its zero you get a straight line. To get "free-form" curves, you just string together these basic curves. Circular arcs make many computations easy: they are easy to intersect, easy to offset, and its easy to compute their arclength and distance to them. These four basic computations are much more difficult with quadratic Bezier curves.
Another final thought :-) : if you draw a circle using sine and cosine functions on a computer, it's still an approximation. It's just that the approximation is hidden inside your computer's implementation of the sine and cosine functions.
$endgroup$
1
$begingroup$
"and I'm not aware of any flood of accuracy complaints" somewhat related: this snafu on the New York Regents Exams.
$endgroup$
– Willie Wong
Jul 22 '13 at 8:34
$begingroup$
@ Willie. Interesting discussion. Thanks. I think the poor approximation comes from lack of skill and knowledge, not from weaknesses in the approximation technique. In other words, user error. I'm sure it's possible to construct cubic Bezier curves that are indistinguishable from sine function graphs on a printed page (if you know what you're doing).
$endgroup$
– bubba
Jul 23 '13 at 13:09
add a comment |
$begingroup$
Quadratic Bezier curves are parabolas, so can only represent circular arcs approximately.
Cubic Bezier curves are very popular (e.g. they are used in Postscript, SVG, and most drawing and CAD programs). Again, they can only represent circular arcs approximately, but the approximation might be good enough for your needs. Many drawing programs use four 90-degree cubic segments to represent a complete circle, and I'm not aware of any flood of accuracy complaints.
You can look at this site for a simple method that uses four cubic Bezier curves and gives an approximation whose maximum error is 0.0196% of the radius. This might be good enough for your application.
Higher degree Bezier curves can produce even better approximations, of course, but the computational costs are obviously higher. Look at this answer for details.
Rational quadratic curves can exactly represent circular arcs (and other conic section curves).
A final thought ... if you want to be able to represent circles exactly, why not use circular arcs as your basic curve form. In 2D, you can have a curve defined by its end-points and a "bulge" parameter. When the bulge is non-zero, you get a circular arc, and when its zero you get a straight line. To get "free-form" curves, you just string together these basic curves. Circular arcs make many computations easy: they are easy to intersect, easy to offset, and its easy to compute their arclength and distance to them. These four basic computations are much more difficult with quadratic Bezier curves.
Another final thought :-) : if you draw a circle using sine and cosine functions on a computer, it's still an approximation. It's just that the approximation is hidden inside your computer's implementation of the sine and cosine functions.
$endgroup$
1
$begingroup$
"and I'm not aware of any flood of accuracy complaints" somewhat related: this snafu on the New York Regents Exams.
$endgroup$
– Willie Wong
Jul 22 '13 at 8:34
$begingroup$
@ Willie. Interesting discussion. Thanks. I think the poor approximation comes from lack of skill and knowledge, not from weaknesses in the approximation technique. In other words, user error. I'm sure it's possible to construct cubic Bezier curves that are indistinguishable from sine function graphs on a printed page (if you know what you're doing).
$endgroup$
– bubba
Jul 23 '13 at 13:09
add a comment |
$begingroup$
Quadratic Bezier curves are parabolas, so can only represent circular arcs approximately.
Cubic Bezier curves are very popular (e.g. they are used in Postscript, SVG, and most drawing and CAD programs). Again, they can only represent circular arcs approximately, but the approximation might be good enough for your needs. Many drawing programs use four 90-degree cubic segments to represent a complete circle, and I'm not aware of any flood of accuracy complaints.
You can look at this site for a simple method that uses four cubic Bezier curves and gives an approximation whose maximum error is 0.0196% of the radius. This might be good enough for your application.
Higher degree Bezier curves can produce even better approximations, of course, but the computational costs are obviously higher. Look at this answer for details.
Rational quadratic curves can exactly represent circular arcs (and other conic section curves).
A final thought ... if you want to be able to represent circles exactly, why not use circular arcs as your basic curve form. In 2D, you can have a curve defined by its end-points and a "bulge" parameter. When the bulge is non-zero, you get a circular arc, and when its zero you get a straight line. To get "free-form" curves, you just string together these basic curves. Circular arcs make many computations easy: they are easy to intersect, easy to offset, and its easy to compute their arclength and distance to them. These four basic computations are much more difficult with quadratic Bezier curves.
Another final thought :-) : if you draw a circle using sine and cosine functions on a computer, it's still an approximation. It's just that the approximation is hidden inside your computer's implementation of the sine and cosine functions.
$endgroup$
Quadratic Bezier curves are parabolas, so can only represent circular arcs approximately.
Cubic Bezier curves are very popular (e.g. they are used in Postscript, SVG, and most drawing and CAD programs). Again, they can only represent circular arcs approximately, but the approximation might be good enough for your needs. Many drawing programs use four 90-degree cubic segments to represent a complete circle, and I'm not aware of any flood of accuracy complaints.
You can look at this site for a simple method that uses four cubic Bezier curves and gives an approximation whose maximum error is 0.0196% of the radius. This might be good enough for your application.
Higher degree Bezier curves can produce even better approximations, of course, but the computational costs are obviously higher. Look at this answer for details.
Rational quadratic curves can exactly represent circular arcs (and other conic section curves).
A final thought ... if you want to be able to represent circles exactly, why not use circular arcs as your basic curve form. In 2D, you can have a curve defined by its end-points and a "bulge" parameter. When the bulge is non-zero, you get a circular arc, and when its zero you get a straight line. To get "free-form" curves, you just string together these basic curves. Circular arcs make many computations easy: they are easy to intersect, easy to offset, and its easy to compute their arclength and distance to them. These four basic computations are much more difficult with quadratic Bezier curves.
Another final thought :-) : if you draw a circle using sine and cosine functions on a computer, it's still an approximation. It's just that the approximation is hidden inside your computer's implementation of the sine and cosine functions.
edited Apr 13 '17 at 12:21
Community♦
1
1
answered Jul 22 '13 at 7:36
bubbabubba
30.5k33188
30.5k33188
1
$begingroup$
"and I'm not aware of any flood of accuracy complaints" somewhat related: this snafu on the New York Regents Exams.
$endgroup$
– Willie Wong
Jul 22 '13 at 8:34
$begingroup$
@ Willie. Interesting discussion. Thanks. I think the poor approximation comes from lack of skill and knowledge, not from weaknesses in the approximation technique. In other words, user error. I'm sure it's possible to construct cubic Bezier curves that are indistinguishable from sine function graphs on a printed page (if you know what you're doing).
$endgroup$
– bubba
Jul 23 '13 at 13:09
add a comment |
1
$begingroup$
"and I'm not aware of any flood of accuracy complaints" somewhat related: this snafu on the New York Regents Exams.
$endgroup$
– Willie Wong
Jul 22 '13 at 8:34
$begingroup$
@ Willie. Interesting discussion. Thanks. I think the poor approximation comes from lack of skill and knowledge, not from weaknesses in the approximation technique. In other words, user error. I'm sure it's possible to construct cubic Bezier curves that are indistinguishable from sine function graphs on a printed page (if you know what you're doing).
$endgroup$
– bubba
Jul 23 '13 at 13:09
1
1
$begingroup$
"and I'm not aware of any flood of accuracy complaints" somewhat related: this snafu on the New York Regents Exams.
$endgroup$
– Willie Wong
Jul 22 '13 at 8:34
$begingroup$
"and I'm not aware of any flood of accuracy complaints" somewhat related: this snafu on the New York Regents Exams.
$endgroup$
– Willie Wong
Jul 22 '13 at 8:34
$begingroup$
@ Willie. Interesting discussion. Thanks. I think the poor approximation comes from lack of skill and knowledge, not from weaknesses in the approximation technique. In other words, user error. I'm sure it's possible to construct cubic Bezier curves that are indistinguishable from sine function graphs on a printed page (if you know what you're doing).
$endgroup$
– bubba
Jul 23 '13 at 13:09
$begingroup$
@ Willie. Interesting discussion. Thanks. I think the poor approximation comes from lack of skill and knowledge, not from weaknesses in the approximation technique. In other words, user error. I'm sure it's possible to construct cubic Bezier curves that are indistinguishable from sine function graphs on a printed page (if you know what you're doing).
$endgroup$
– bubba
Jul 23 '13 at 13:09
add a comment |
$begingroup$
"a curve type with a ... maximum of usability"
reminds me that Don Lancaster once said,
"I feel the "best" method for simple
and graceful curves involves using a
cubic spline technique."
(He specifically prefers cubic Bézier splines over quadratic Bézier splines).
A single cubic Bézier curves can exactly fit any straight line, any parabola
(including any quadratic Bézier curve),
and certain other curves.
Is it possible to build a circle with quadratic Bézier curves?
Any smooth curve can be approximated by a series of cubic curves in a way that is visually indistinguishable from the original smooth curve.
(Each cubic curve, in turn, can be approximated by a series of a few quadratic Bézier curves in a way that is visually indistinguishable from the cubic curve or from the original smooth curve).
Most "circles" you see on a computer screen are, in fact, drawn using a Bezier curve approximation.
All the shapes you see in typography -- including circles and circular arcs -- are approximated by cubic Bézier curves (in PostScript, Asymptote, Metafont, and SVG fonts) or quadratic Bézier curves (in TrueType fonts).
It is possible to create an approximation of a circle (or a sine wave) to an accuracy of about 1 part in a thousand with 4 cubic Bezier curves, and to about 4 parts per million with 8 Bezier curves. See "Wikibooks: fixed-point",
"Wikipedia: Bezigon circle approximation",
"Approximating Cubic Bezier Curves with a few Quadratic Bezier curves in Flash MX",
and
"Don Lancaster's Cubic Spline Library"
-- which in turn includes "Approximating a Circle or an Ellipse Using Bezier Cubic Splines" and "How to determine the control points of a Bézier curve that approximates a small circular arc".
$endgroup$
add a comment |
$begingroup$
"a curve type with a ... maximum of usability"
reminds me that Don Lancaster once said,
"I feel the "best" method for simple
and graceful curves involves using a
cubic spline technique."
(He specifically prefers cubic Bézier splines over quadratic Bézier splines).
A single cubic Bézier curves can exactly fit any straight line, any parabola
(including any quadratic Bézier curve),
and certain other curves.
Is it possible to build a circle with quadratic Bézier curves?
Any smooth curve can be approximated by a series of cubic curves in a way that is visually indistinguishable from the original smooth curve.
(Each cubic curve, in turn, can be approximated by a series of a few quadratic Bézier curves in a way that is visually indistinguishable from the cubic curve or from the original smooth curve).
Most "circles" you see on a computer screen are, in fact, drawn using a Bezier curve approximation.
All the shapes you see in typography -- including circles and circular arcs -- are approximated by cubic Bézier curves (in PostScript, Asymptote, Metafont, and SVG fonts) or quadratic Bézier curves (in TrueType fonts).
It is possible to create an approximation of a circle (or a sine wave) to an accuracy of about 1 part in a thousand with 4 cubic Bezier curves, and to about 4 parts per million with 8 Bezier curves. See "Wikibooks: fixed-point",
"Wikipedia: Bezigon circle approximation",
"Approximating Cubic Bezier Curves with a few Quadratic Bezier curves in Flash MX",
and
"Don Lancaster's Cubic Spline Library"
-- which in turn includes "Approximating a Circle or an Ellipse Using Bezier Cubic Splines" and "How to determine the control points of a Bézier curve that approximates a small circular arc".
$endgroup$
add a comment |
$begingroup$
"a curve type with a ... maximum of usability"
reminds me that Don Lancaster once said,
"I feel the "best" method for simple
and graceful curves involves using a
cubic spline technique."
(He specifically prefers cubic Bézier splines over quadratic Bézier splines).
A single cubic Bézier curves can exactly fit any straight line, any parabola
(including any quadratic Bézier curve),
and certain other curves.
Is it possible to build a circle with quadratic Bézier curves?
Any smooth curve can be approximated by a series of cubic curves in a way that is visually indistinguishable from the original smooth curve.
(Each cubic curve, in turn, can be approximated by a series of a few quadratic Bézier curves in a way that is visually indistinguishable from the cubic curve or from the original smooth curve).
Most "circles" you see on a computer screen are, in fact, drawn using a Bezier curve approximation.
All the shapes you see in typography -- including circles and circular arcs -- are approximated by cubic Bézier curves (in PostScript, Asymptote, Metafont, and SVG fonts) or quadratic Bézier curves (in TrueType fonts).
It is possible to create an approximation of a circle (or a sine wave) to an accuracy of about 1 part in a thousand with 4 cubic Bezier curves, and to about 4 parts per million with 8 Bezier curves. See "Wikibooks: fixed-point",
"Wikipedia: Bezigon circle approximation",
"Approximating Cubic Bezier Curves with a few Quadratic Bezier curves in Flash MX",
and
"Don Lancaster's Cubic Spline Library"
-- which in turn includes "Approximating a Circle or an Ellipse Using Bezier Cubic Splines" and "How to determine the control points of a Bézier curve that approximates a small circular arc".
$endgroup$
"a curve type with a ... maximum of usability"
reminds me that Don Lancaster once said,
"I feel the "best" method for simple
and graceful curves involves using a
cubic spline technique."
(He specifically prefers cubic Bézier splines over quadratic Bézier splines).
A single cubic Bézier curves can exactly fit any straight line, any parabola
(including any quadratic Bézier curve),
and certain other curves.
Is it possible to build a circle with quadratic Bézier curves?
Any smooth curve can be approximated by a series of cubic curves in a way that is visually indistinguishable from the original smooth curve.
(Each cubic curve, in turn, can be approximated by a series of a few quadratic Bézier curves in a way that is visually indistinguishable from the cubic curve or from the original smooth curve).
Most "circles" you see on a computer screen are, in fact, drawn using a Bezier curve approximation.
All the shapes you see in typography -- including circles and circular arcs -- are approximated by cubic Bézier curves (in PostScript, Asymptote, Metafont, and SVG fonts) or quadratic Bézier curves (in TrueType fonts).
It is possible to create an approximation of a circle (or a sine wave) to an accuracy of about 1 part in a thousand with 4 cubic Bezier curves, and to about 4 parts per million with 8 Bezier curves. See "Wikibooks: fixed-point",
"Wikipedia: Bezigon circle approximation",
"Approximating Cubic Bezier Curves with a few Quadratic Bezier curves in Flash MX",
and
"Don Lancaster's Cubic Spline Library"
-- which in turn includes "Approximating a Circle or an Ellipse Using Bezier Cubic Splines" and "How to determine the control points of a Bézier curve that approximates a small circular arc".
answered Nov 25 '13 at 16:56
David CaryDavid Cary
1,398928
1,398928
add a comment |
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f449035%2fis-it-possible-to-build-a-circle-with-quadratic-b%25c3%25a9zier-curves%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown