| | Describes a rational or non-rational Bezier curve
- a non-rational Bezier curve is defined by a table of
poles (also called control points),
- a rational Bezier curve is defined by a table of
poles with varying weights.
These data are manipulated by two parallel arrays:
- the poles table, which is an array of gp_Pnt points, and
- the weights table, which is an array of reals.
The bounds of these arrays are 1 and "the number of "poles" of the curve. <br>
The poles of the curve are "control points" used to deform the curve.
The first pole is the start point of the curve, and the
last pole is the end point of the curve. The segment
that joins the first pole to the second pole is the
tangent to the curve at its start point, and the
segment that joins the last pole to the
second-from-last pole is the tangent to the curve at its end point.
It is more difficult to give a geometric signification to
the weights but they are useful for providing the exact
representations of arcs of a circle or ellipse.
Moreover, if the weights of all poles are equal, the
curve is polynomial; it is therefore a non-rational
curve. The non-rational curve is a special and
frequently used case. The weights are defined and
used only in the case of a rational curve.
The degree of a Bezier curve is equal to the number
of poles, minus 1. It must be greater than or equal to
1. However, the degree of a Geom_BezierCurve
curve is limited to a value (25) which is defined and
controlled by the system. This value is returned by the function MaxDegree.
The parameter range for a Bezier curve is [ 0, 1 ].
If the first and last control points of the Bezier curve
are the same point then the curve is closed. For
example, to create a closed Bezier curve with four
control points, you have to give the set of control
points P1, P2, P3 and P1.
The continuity of a Bezier curve is infinite.
It is not possible to build a Bezier curve with negative
weights. We consider that a weight value is zero if it
is less than or equal to gp::Resolution(). We
also consider that two weight values W1 and W2 are equal if:
|W2 - W1| <= gp::Resolution().
Warning
- When considering the continuity of a closed Bezier
curve at the junction point, remember that a curve
of this type is never periodic. This means that the
derivatives for the parameter u = 0 have no
reason to be the same as the derivatives for the
parameter u = 1 even if the curve is closed.
- The length of a Bezier curve can be null.
More...
|