3.2 Controlling the motion of a point along a curve
Designing the shape of a curve is the first step in creating an animation path. The speed at which the curve is traced out has to be under the control of the animator to produce predictable results. The first step in giving the animator control is to establish a method for stepping along the curve in equal increments.
An interpolating technique has been chosen and that a function P(u) has been selected that, for a given value of u, will produce a value that is a point in space, p=P(u). P(u) can be considered to represent three functions. The x-,y-, and z- coordinates for the positions at the key frames are specified by the user. This specific curve was formed using the x-coordinates of the key positions, X=P_x(u).
Varying the parameter of interpolation by a constant amount does not mean that the resulting values will vary by a constant amount. Thus, if positions are being interpolated by varying u at a constant rate, the positions that are generated will not represent a constant speed.
To ensure a constant speed, the interpolating function has to be parameterized by arc length, that is distance along the curve of interpolation. Three approaches to establishing the reparameterization by arc length are discussed here. One approach is to analytically compute arc length. Unfortunately, many curve formulations do not lend themselves to the analytic method, so numeric methods must be applied. Two numeric methods are presented, both of which create a table of values to establish a relationship between parametric value and approximate arc length. This table can be used to approximate parametric values at equal-length steps along the curve. The first of these numeric methods constructs the table by supersampling the curve and uses summed linear distances to approximate arc length. The second numeric method uses Gaussian quadrature to numerically estimate the arc length. Both method can benefit from an adaptive subdivision approach to controlling error.
3.2.1 Computing arc length
To specify how fast the object is to move along the path defined by the curve, an animator may want to specify the time at which position along the curve should be attained.
Assume that position of an object in three-dimensional space is being interpolated. The objective is to define a parameterized function that evaluates to a point in three-dimensional space as a function of the parametric value; this defines a space curve. Assume for that the function is a cublic polynomial as a function of a single parametric

Each of three equations is a cubic polynomial. Once the curve has been specified, an object is moved along it by choosing a value of the parametric variable.
It is important how the path is swept(move quickly) out overtime. A very different effect will be evoked if an object travels over the curve at a strictly constant speed. It is important to discuss both the curve that defines the path to be followed by the object and the function that relates time to distance traveled. The former is mentioned space curve and the term distance-time function will be used to refer the latter. As a result, the terms curve and function will be used interchangeably.
Notice that a function is desired that relates time to a position on the space curve. The user supplies the distance-time function that relates time to the distance traveled along the curve. The distance along a curve is defined as arc length, denoted by s. Then s=S(u) is used. If the arc length computation is specified as a function of time, then S(t) is used(if we use time t as a parametric value). The function of arc length that computes a parametric value is specified as u=U(s)(compute the parametric value for example time t, based on the arc length data).
The interpolating function relates parametric value to position on the space curve. The relationship between distance along the curve and the parametric value needs to be established. This relationship is the arc length parametrization of the space curve. It allows movement along the curve at a constant speed by evaluating the curve at equal arc length intervals. It allows acceleration and deceleration.
For an arbitrary curve, it is usually not the case that a constant change in the parameter will result in a constant distance traveled. The relationship between parameterizing variable and arc length is nonlinear. In the special case when a unit change in the parameterizing variable results in a unit change in curve length, the curve is said to be parameterized by arc length. This solves many problems in controlling the motion.

The first step in controlling the timing along a space curve is to establish parameterization(relationship between arc length and parametric value). This can be done by s=S(u), which computes the length of the curve from its starting point to the point that corresponds to the parametric value. Then if the inverse, u=S^-1(s) = U(s)(inverse of s : calculate the point from traversed distance) can be computed, the curve can be parameterized by arc length, P(U(s)). The second step is the distance the object should move along the curve for each time step.
As stated previously, the first step in controlling the motion of an object along a space curve is to establish the relationship between the parametric value and arc length. If possible, the curve should be parameterized by arc length by analyzing the space curve equation. Unfortunately, it is impossible to find a closed-form algebraic formula to describe an arc length parameter. For example, B-spline curvves cannot be parameterized this way.
'ComputerGraphics' 카테고리의 다른 글
| Find a point that is a given distance along a curve (0) | 2022.11.04 |
|---|---|
| The analytic approach to computing arc length (0) | 2022.11.01 |
| Interpolating Values (0) | 2022.10.31 |
| Quaternion representation (0) | 2022.10.27 |
| Orientation representation (0) | 2022.10.26 |
댓글