Animating along a path
In this recipe, we will learn how to draw a smooth B-spline in the 3D space and animate the position of an object along the calculated B-spline.
Getting ready
To navigate in the 3D space, we will use MayaCamUI
covered in the Using MayaCamUI recipe in Chapter 2, Preparing for Development.
How to do it…
We will create an example animation of an object moving along the spline. Perform the following steps to do so:
Include necessary header files.
#include "cinder/Rand.h" #include "cinder/MayaCamUI.h" #include "cinder/BSpline.h"
Begin with the declaration of member variables to keep the B-spline and current object's position.
Vec3f mObjPosition; BSpline3f spline;
Inside the
setup
method prepare a random spline:mObjPosition = Vec3f::zero(); vector<Vec3f> splinePoints; float step = 0.5f; float width = 20.f; for (float t = 0.f; t < width; t += step) { Vec3f pos = Vec3f( cos(t)*randFloat(0.f,2.f), sin(t)*0.3f, t - width*0.5f); splinePoints.push_back( pos )...