What are u/u_i? And how is the continuity at the endpoints guaranteed?
motoole2
@SlimShady Bezier curves are defined by a certain number of control points (e.g., linear Bezier curves have 2 control points where n = 1, cubic Bezier curves have 4 control points where n = 3). Moreover, the start and end points of a Bezier curves are given by the first and last control points. So producing a piecewise Bezier curve is easy: make sure that the last control point of Bezier curve i is the same as the first control point of Bezier curve i+1.
As for the value of u, u is a scalar that represents a point on your piecewise Bezier curve. Because a single Bezier curves takes as input a value s between 0 and 1, we convert u to s = (u - u_i) / (u_{i+1} - u_i). Here, u_i and u_{i+1} represent the endpoints of a single Bezier curve.
elenagong
In this case, is u_{i + 1} the endpoint connecting to another single Bezier curve?
motoole2
@elenagong Yes. At u = u_{i+1}, the single Bezier function \gamma_i((u-u_i)/(u_{i+1}-u_i)) = \gamma_i(1) produces the coordinate of this endpoint. The neighboring Bezier function needs to satisfy the property \gamma_{i+1}(0) = \gamma_i(1) (i.e., coordinates for the end of Bezier i and start of Bezier i+1 are the same) to make sure the endpoints line up and we have a continuous piecewise Bezier function.
yuanzhec
Are fonts stored as piecewise Bezier curves in practice? Are they manually designed for each character?
motoole2
@yuanzhec I suppose someone must of manually designed them. :-) Here's a nice tutorial on the topic. TrueType fonts are expressed in terms of quadratic Bezier curves (3 control points), whereas PostScript fonts are expressed in terms of cubic Bezier curves (4 control points).
What are u/u_i? And how is the continuity at the endpoints guaranteed?
@SlimShady Bezier curves are defined by a certain number of control points (e.g., linear Bezier curves have 2 control points where n = 1, cubic Bezier curves have 4 control points where n = 3). Moreover, the start and end points of a Bezier curves are given by the first and last control points. So producing a piecewise Bezier curve is easy: make sure that the last control point of Bezier curve i is the same as the first control point of Bezier curve i+1.
As for the value of
u
,u
is a scalar that represents a point on your piecewise Bezier curve. Because a single Bezier curves takes as input a values
between 0 and 1, we convertu
tos = (u - u_i) / (u_{i+1} - u_i)
. Here,u_i
andu_{i+1}
represent the endpoints of a single Bezier curve.In this case, is u_{i + 1} the endpoint connecting to another single Bezier curve?
@elenagong Yes. At
u = u_{i+1}
, the single Bezier function\gamma_i((u-u_i)/(u_{i+1}-u_i)) = \gamma_i(1)
produces the coordinate of this endpoint. The neighboring Bezier function needs to satisfy the property\gamma_{i+1}(0) = \gamma_i(1)
(i.e., coordinates for the end of Bezieri
and start of Bezieri+1
are the same) to make sure the endpoints line up and we have a continuous piecewise Bezier function.Are fonts stored as piecewise Bezier curves in practice? Are they manually designed for each character?
@yuanzhec I suppose someone must of manually designed them. :-) Here's a nice tutorial on the topic. TrueType fonts are expressed in terms of quadratic Bezier curves (3 control points), whereas PostScript fonts are expressed in terms of cubic Bezier curves (4 control points).