3D Flight animation
But we can use an approximate expression for derivative too
At first look at flying Elephant (6.4kb you will
fly with Elephant if you choose the "Fly" viewpoint :)
Flight Interpolator PROTO.
Cardinal splines curve
PositionInterpolator PROTO "node" (see also Spline PositionInterpolator
Demo with control points and path).
For flight animation we need to set orientation of our model (airplane) next.
The tangent direction N for a Bezier spline curve is
N(t) = d/dt C(t) =
S dBi(t)/dt Pi.
Ni ~ (Ci+1 -
Let our model initially is oriented in X direction and is
parallel to the XZ plane (i.e. with zero banking).
To set it in the tangent N direction we
can use two rotations (see pictures below): the first rotation around the
Z axis on angle q and then
the second rotation around the Y axis on angle
It is evident, that this transformation keeps zero banking. We can set
any banking angle (the phi field in the Flight Interpolator PROTO) by
rotation of our model around the X axis before this transformation.
"Unfortunately" for Nx < 0 you can make this
transformation in the two different ways (see the second picture). You
can rotate model on q2 >
p /2 (Demo 1)
or make the first rotation on angle
q1 < p
/2 ( q2 = p -
and the second one on f =
p (Demo 2).
You see, that all these Demos are not perfect. In this
Demo 3 we use the first type rotation for the
vertical loop and the second type one for the horizontal loop. The type of
rotation is set by the sign of the key field! And switch type of
rotation at Nx > 0, when these transformations
coincide. You can make a flight path in "sPatch" at first.
Please write me if you know more natural way to set model's orientation.
As since an orientation (rotation) object includes axis and angle of
rotation (a vector and a number) therefore one can easy make Spline
OrientationIterpolator PROTO for viewpoint (camera) animation if the linear
OrientationIterpolator node is not enough.
updated 5 April 2001