# How to fly a curve from one heading to another using only roll and pitch.

I have 3 perpendicular vectors representing an object in 3d space...

Heading
Right
Up


...and I would like to be able to 'fly' this object so that it ends up at a specific point and heading using only roll and pitch (no yaw) so that the object follows a smooth flightpath.

This is for spaceship AI.

-
I think you need to add a little more detail. What are the dynamics of the object? –  copper.hat Apr 27 '12 at 16:34
Your question is, in mathematical terms, more or less: «given points $A$ and $B$ and orthonormal ordered bases $O_A$ and $O_B$, how do I find a curve going from $A$ to $B$ such that at each of those points its Frenet frame is $O_A$ and $O_B$, respectively, and which is made up of Bezier segments?» –  Mariano Suárez-Alvarez Apr 30 '12 at 19:22
(There are many such curves, so you'd need to add further conditions to make the problem better-posed.) –  Mariano Suárez-Alvarez Apr 30 '12 at 19:24

Given a know trajectory in the space, you can introduce for each point three vectors: Tangent, Normal and Binormal vectors. These image should help you visualize them:

The condition of having no yaw (i think) should be equivalent that the direction of "Up" should be the same of the direction of the Normal vector. "Heading" and "Right" can be any two orthogonal vector in the plane T-B, but I think that setting T="Heading" and B="Right" should be the most intuitive way of visualizing an airplane.

There you can found reference for how calculate them given the curve: http://en.wikipedia.org/wiki/Differential_geometry_of_curves or http://en.wikipedia.org/wiki/Frenet-Serret_formulas

-
Notice that the question was, really, «how do I find a curve for the plane to follow from point A to point B such that no yawing (I think I just made up this word...) is required to follow it» I suppose that A and B, or A at least, has the Up, Heading and Right vectors fixed —also, given the tags, I think the OP wants to construct the path using Bezier patches. Your answer is then more of an explanation of the question than an actual answer :) –  Mariano Suárez-Alvarez Apr 30 '12 at 19:19
@MarianoSuárez-Alvarez: Maybe I should have stated this clearly, but for me the answer is: "every possible path can be followed without ever using yaw". The costructive solution is calculate T,N and B for each point in the curve, fix the "heading"=T, then the "right" to the direction of B (so equat to B or -B) and "up" to N or -N. Then calculate the ammount of roll and pitch required in each point. –  carlop Apr 30 '12 at 21:13
It does help to be more explicit :) in any case, I don't think what you wrote will help the OP in that what he really wants is to construct the path... –  Mariano Suárez-Alvarez Apr 30 '12 at 21:22
It's totaly possible that my answer wasn't the one that @James requires, I think that he already has find his path (a bezier curve) and now he need to find how to follow it withoyt yaw. If the question was "how to build a smooth path?", he can still use the fact that the problem "find a smooth path with no yaw" it's the same of "find a smooth path", but I don't know what approach suggest him for the latter problem. –  carlop Apr 30 '12 at 21:53