From d8fab98ec7edbc7b6e2c53089648d30023f79545 Mon Sep 17 00:00:00 2001
From: Bezierinfo CI
How does that work? Succinctly: we run de Casteljau's algorithm in reverse!
- In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that want to - be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know has - no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for + In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that we want + to be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know + has no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for reasons that will become obvious.
So let's use graphics instead of text to see where this "A" is, because text only gets us so far: move the sliders for the following
- graphics to see what, given specific t
value, our A
coordinate is. As well as some other coordinates, which
+ graphics to see what, given a specific t
value, our A
coordinate is. As well as some other coordinates, which
taken together let us derive a value that the graphics call "ratio": if you move the curve's points around, A, B, and C will move, what
happens to that value?
- So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and ends
+ So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and end
points, so logically C
will have a function that interpolates between those two coordinates:
- So, if we know the start and end coordinates, and we know the t value, we know C, without having to calculate the
- A
or even B
coordinates. In fact, we can do the same for the ratio function: as another function of
- t
, we technically don't need to know what A
or B
or C
are, we can express it was a
- pure function of t
, too.
+ So, if we know the start and end coordinates and the t value, we know C without having to calculate the A
or even
+ B
coordinates. In fact, we can do the same for the ratio function. As another function of t
, we technically
+ don't need to know what A
or B
or C
are. It, too, can be expressed as a pure function of
+ t
.
We start by observing that, given A
, B
, and C
, the following always holds:
- Which now leaves us with some powerful tools: given thee points (start, end, and "some point on the curve"), as well as a
- t
value, we can construct curves: we can compute C
using the start and end points, and our
+ Which now leaves us with some powerful tools: given three points (start, end, and "some point on the curve"), as well as a
+ t
value, we can construct curves. We can compute C
using the start and end points and our
u(t)
function, and once we have C
, we can use our on-curve point (B
) and the
ratio(t)
function to find A
:
And then reverse engineer the curve's control control points:
+And then reverse engineer the curve's control points:
- So: if we have a curve's start and end point, then for any t
value we implicitly know all the ABC values, which (combined
+ So: if we have a curve's start and end points, then for any t
value we implicitly know all the ABC values, which (combined
with an educated guess on appropriate e1
and e2
coordinates for cubic curves) gives us the necessary information
to reconstruct a curve's "de Casteljau skeleton". Which means that we can now do several things: we can "fit" curves using only three
- points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end point, and then reconstructing the
+ points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end points, and then reconstruct the
curve based on where we moved the on-curve point to. These are very useful things, and we'll look at both in the next few sections.
How does that work? Succinctly: we run de Casteljau's algorithm in reverse!
- In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that want to - be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know has - no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for + In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that we want + to be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know + has no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for reasons that will become obvious.
So let's use graphics instead of text to see where this "A" is, because text only gets us so far: move the sliders for the following
- graphics to see what, given specific t
value, our A
coordinate is. As well as some other coordinates, which
+ graphics to see what, given a specific t
value, our A
coordinate is. As well as some other coordinates, which
taken together let us derive a value that the graphics call "ratio": if you move the curve's points around, A, B, and C will move, what
happens to that value?
- So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and ends
+ So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and end
points, so logically C
will have a function that interpolates between those two coordinates:
- So, if we know the start and end coordinates, and we know the t value, we know C, without having to calculate the
- A
or even B
coordinates. In fact, we can do the same for the ratio function: as another function of
- t
, we technically don't need to know what A
or B
or C
are, we can express it was a
- pure function of t
, too.
+ So, if we know the start and end coordinates and the t value, we know C without having to calculate the A
or even
+ B
coordinates. In fact, we can do the same for the ratio function. As another function of t
, we technically
+ don't need to know what A
or B
or C
are. It, too, can be expressed as a pure function of
+ t
.
We start by observing that, given A
, B
, and C
, the following always holds:
- Which now leaves us with some powerful tools: given thee points (start, end, and "some point on the curve"), as well as a
- t
value, we can construct curves: we can compute C
using the start and end points, and our
+ Which now leaves us with some powerful tools: given three points (start, end, and "some point on the curve"), as well as a
+ t
value, we can construct curves. We can compute C
using the start and end points and our
u(t)
function, and once we have C
, we can use our on-curve point (B
) and the
ratio(t)
function to find A
:
And then reverse engineer the curve's control control points:
+And then reverse engineer the curve's control points:
- So: if we have a curve's start and end point, then for any t
value we implicitly know all the ABC values, which (combined
+ So: if we have a curve's start and end points, then for any t
value we implicitly know all the ABC values, which (combined
with an educated guess on appropriate e1
and e2
coordinates for cubic curves) gives us the necessary information
to reconstruct a curve's "de Casteljau skeleton". Which means that we can now do several things: we can "fit" curves using only three
- points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end point, and then reconstructing the
+ points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end points, and then reconstruct the
curve based on where we moved the on-curve point to. These are very useful things, and we'll look at both in the next few sections.
How does that work? Succinctly: we run de Casteljau's algorithm in reverse!
- In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that want to - be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know has - no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for + In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that we want + to be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know + has no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for reasons that will become obvious.
So let's use graphics instead of text to see where this "A" is, because text only gets us so far: move the sliders for the following
- graphics to see what, given specific t
value, our A
coordinate is. As well as some other coordinates, which
+ graphics to see what, given a specific t
value, our A
coordinate is. As well as some other coordinates, which
taken together let us derive a value that the graphics call "ratio": if you move the curve's points around, A, B, and C will move, what
happens to that value?
- So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and ends
+ So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and end
points, so logically C
will have a function that interpolates between those two coordinates:
- So, if we know the start and end coordinates, and we know the t value, we know C, without having to calculate the
- A
or even B
coordinates. In fact, we can do the same for the ratio function: as another function of
- t
, we technically don't need to know what A
or B
or C
are, we can express it was a
- pure function of t
, too.
+ So, if we know the start and end coordinates and the t value, we know C without having to calculate the A
or even
+ B
coordinates. In fact, we can do the same for the ratio function. As another function of t
, we technically
+ don't need to know what A
or B
or C
are. It, too, can be expressed as a pure function of
+ t
.
We start by observing that, given A
, B
, and C
, the following always holds:
- Which now leaves us with some powerful tools: given thee points (start, end, and "some point on the curve"), as well as a
- t
value, we can construct curves: we can compute C
using the start and end points, and our
+ Which now leaves us with some powerful tools: given three points (start, end, and "some point on the curve"), as well as a
+ t
value, we can construct curves. We can compute C
using the start and end points and our
u(t)
function, and once we have C
, we can use our on-curve point (B
) and the
ratio(t)
function to find A
:
And then reverse engineer the curve's control control points:
+And then reverse engineer the curve's control points:
- So: if we have a curve's start and end point, then for any t
value we implicitly know all the ABC values, which (combined
+ So: if we have a curve's start and end points, then for any t
value we implicitly know all the ABC values, which (combined
with an educated guess on appropriate e1
and e2
coordinates for cubic curves) gives us the necessary information
to reconstruct a curve's "de Casteljau skeleton". Which means that we can now do several things: we can "fit" curves using only three
- points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end point, and then reconstructing the
+ points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end points, and then reconstruct the
curve based on where we moved the on-curve point to. These are very useful things, and we'll look at both in the next few sections.
How does that work? Succinctly: we run de Casteljau's algorithm in reverse!
- In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that want to - be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know has - no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for + In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that we want + to be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know + has no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for reasons that will become obvious.
So let's use graphics instead of text to see where this "A" is, because text only gets us so far: move the sliders for the following
- graphics to see what, given specific t
value, our A
coordinate is. As well as some other coordinates, which
+ graphics to see what, given a specific t
value, our A
coordinate is. As well as some other coordinates, which
taken together let us derive a value that the graphics call "ratio": if you move the curve's points around, A, B, and C will move, what
happens to that value?
- So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and ends
+ So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and end
points, so logically C
will have a function that interpolates between those two coordinates:
- So, if we know the start and end coordinates, and we know the t value, we know C, without having to calculate the
- A
or even B
coordinates. In fact, we can do the same for the ratio function: as another function of
- t
, we technically don't need to know what A
or B
or C
are, we can express it was a
- pure function of t
, too.
+ So, if we know the start and end coordinates and the t value, we know C without having to calculate the A
or even
+ B
coordinates. In fact, we can do the same for the ratio function. As another function of t
, we technically
+ don't need to know what A
or B
or C
are. It, too, can be expressed as a pure function of
+ t
.
We start by observing that, given A
, B
, and C
, the following always holds:
- Which now leaves us with some powerful tools: given thee points (start, end, and "some point on the curve"), as well as a
- t
value, we can construct curves: we can compute C
using the start and end points, and our
+ Which now leaves us with some powerful tools: given three points (start, end, and "some point on the curve"), as well as a
+ t
value, we can construct curves. We can compute C
using the start and end points and our
u(t)
function, and once we have C
, we can use our on-curve point (B
) and the
ratio(t)
function to find A
:
And then reverse engineer the curve's control control points:
+And then reverse engineer the curve's control points:
- So: if we have a curve's start and end point, then for any t
value we implicitly know all the ABC values, which (combined
+ So: if we have a curve's start and end points, then for any t
value we implicitly know all the ABC values, which (combined
with an educated guess on appropriate e1
and e2
coordinates for cubic curves) gives us the necessary information
to reconstruct a curve's "de Casteljau skeleton". Which means that we can now do several things: we can "fit" curves using only three
- points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end point, and then reconstructing the
+ points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end points, and then reconstruct the
curve based on where we moved the on-curve point to. These are very useful things, and we'll look at both in the next few sections.
How does that work? Succinctly: we run de Casteljau's algorithm in reverse!
- In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that want to - be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know has - no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for + In order to run de Casteljau's algorithm in reverse, we need a few basic things: a start and end point, a point on the curve that we want + to be moving around, which has an associated t value, and a point we've not explicitly talked about before, and as far as I know + has no explicit name, but lives one iteration higher in the de Casteljau process then our on-curve point does. I like to call it "A" for reasons that will become obvious.
So let's use graphics instead of text to see where this "A" is, because text only gets us so far: move the sliders for the following
- graphics to see what, given specific t
value, our A
coordinate is. As well as some other coordinates, which
+ graphics to see what, given a specific t
value, our A
coordinate is. As well as some other coordinates, which
taken together let us derive a value that the graphics call "ratio": if you move the curve's points around, A, B, and C will move, what
happens to that value?
- So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and ends
+ So, how can we compute C
? We start with our observation that C
always lies somewhere between the start and end
points, so logically C
will have a function that interpolates between those two coordinates:
- So, if we know the start and end coordinates, and we know the t value, we know C, without having to calculate the
- A
or even B
coordinates. In fact, we can do the same for the ratio function: as another function of
- t
, we technically don't need to know what A
or B
or C
are, we can express it was a
- pure function of t
, too.
+ So, if we know the start and end coordinates and the t value, we know C without having to calculate the A
or even
+ B
coordinates. In fact, we can do the same for the ratio function. As another function of t
, we technically
+ don't need to know what A
or B
or C
are. It, too, can be expressed as a pure function of
+ t
.
We start by observing that, given A
, B
, and C
, the following always holds:
- Which now leaves us with some powerful tools: given thee points (start, end, and "some point on the curve"), as well as a
- t
value, we can construct curves: we can compute C
using the start and end points, and our
+ Which now leaves us with some powerful tools: given three points (start, end, and "some point on the curve"), as well as a
+ t
value, we can construct curves. We can compute C
using the start and end points and our
u(t)
function, and once we have C
, we can use our on-curve point (B
) and the
ratio(t)
function to find A
:
And then reverse engineer the curve's control control points:
+And then reverse engineer the curve's control points:
- So: if we have a curve's start and end point, then for any t
value we implicitly know all the ABC values, which (combined
+ So: if we have a curve's start and end points, then for any t
value we implicitly know all the ABC values, which (combined
with an educated guess on appropriate e1
and e2
coordinates for cubic curves) gives us the necessary information
to reconstruct a curve's "de Casteljau skeleton". Which means that we can now do several things: we can "fit" curves using only three
- points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end point, and then reconstructing the
+ points, which means we can also "mold" curves by moving an on-curve point but leaving its start and end points, and then reconstruct the
curve based on where we moved the on-curve point to. These are very useful things, and we'll look at both in the next few sections.