mirror of
https://github.com/Pomax/BezierInfo-2.git
synced 2025-08-31 20:11:59 +02:00
Small edits to ABC chapter (#194)
* Small edits to ABC chapter * Add a missing "and" * Punctuation fix * Split long sentence * Update content.en-GB.md
This commit is contained in:
@@ -19,7 +19,7 @@ Clicking anywhere on the curves shows us three things:
|
||||
2. a point at the tip of B's "hat", on de Casteljau step up; let's call that <b>A</b>, and
|
||||
3. a point that we get by projecting B onto the start--end baseline; let's call that <b>C</b>.
|
||||
|
||||
These three values ABC hide an important identity formula for quadratic and cubic Bézier curves: for any point on the curve with some *t* value, the ratio distance of C along baseline is fixed: if some *t* value sets up a C that is 20% away from the start and 80% away from the end, then it doesn't matter where the start, end, or control points are: for that *t* value, C will *always* lie at 20% from the start and 80% from the end point. Go ahead, pick an on-curve point in either graphic and then move all the other points around: if you only move the control points, start and end won't move, and so neither will C, and if you move either start or end point, C will move but its relative position will not change. The following function stays true:
|
||||
These three values A, B, and C hide an important identity formula for quadratic and cubic Bézier curves: for any point on the curve with some *t* value, the ratio distance of C along the baseline is fixed: if some *t* value sets up a C that is 20% away from the start and 80% away from the end, then it doesn't matter where the start, end, or control points are; for that *t* value, C will *always* lie at 20% from the start and 80% from the end point. Go ahead, pick an on-curve point in either graphic and then move all the other points around: if you only move the control points, start and end won't move, and so neither will C, and if you move either start or end point, C will move but its relative position will not change. The following function stays true:
|
||||
|
||||
\[
|
||||
C = u \cdot P_{start} + (1-u) \cdot P_{end}
|
||||
@@ -50,7 +50,7 @@ Mouse-over the graphs to see the expression for C, given the *t* value at the mo
|
||||
|
||||
</div>
|
||||
|
||||
There's also another important bit of information that is inherent to the ABC values: while the distances between A and B, and B and C, are dynamic (based on where we put B), the *ratio* between the two distances is stable: given some *t* value, the following always holds:
|
||||
There's also another important bit of information that is inherent to the ABC values: while the distances between A and B, and B and C, are dynamic (based on where we put B), the *ratio* between the two distances is stable. Given some *t* value, the following always holds:
|
||||
|
||||
\[
|
||||
ratio(t) = \frac{distance(B,C)}{distance(A,B)} = Constant
|
||||
@@ -80,4 +80,4 @@ Unfortunately, this trick only works for quadratic and cubic curves. Once we hit
|
||||
|
||||
</div>
|
||||
|
||||
So: if we know B and its corresponding *t* value, then we know all the ABC values, which —together with a start and end coordinate— gives us the necessary information to reconstruct a curve's "de Casteljau skeleton", which means that two points and a value between 0 and 1, we can come up with a curve. And that opens up possibilities: curve manipulation by dragging an on-curve point, curve fitting of "a bunch of coordinates", these are useful things, and we'll look at both in the next sections.
|
||||
So: if we know B and its corresponding *t* value, then we know all the ABC values, which —together with a start and end coordinate— gives us the necessary information to reconstruct a curve's "de Casteljau skeleton", which means that two points and a value between 0 and 1, we can come up with a curve. And that opens up possibilities: curve manipulation by dragging an on-curve point, as well as curve fitting of "a bunch of coordinates". These are useful things, and we'll look at both in the next sections.
|
||||
|
Reference in New Issue
Block a user