So I’m very confused about Quaternions in RhinoCommon (or quite possibly in general). I figured that the following code would allow me to rotate one plane towards another by varying the parameter from 0.0 to 1.0, but I’m not getting the correct results at all. I don’t care about the translation aspect, we can assume that both planes have their origin at (0,0,0).
Clearly I cannot interpolate quaternions like I would regular numbers. What is the correct way?
Plane BlendPlane(Plane plane0, Plane plane1, double parameter)
{
Quaternion q0 = Quaternion.Identity;
Quaternion q1 = Quaternion.Rotation(plane0, plane1);
Quaternion q2 = (q0 * (1 - parameter)) + (q1 * parameter);
Transform transform = q2.MatrixForm();
plane0.Transform(transform);
return plane0;
}