Difference between Transfom.ChangeBasis and Transform.PlaneToPlane


When Placing Blocks in Rhino, I have used
Transform.ChangeBasis() quite a bit (Mimicking the Orient3Pt command). In Most cases it works fine.
However, in some cases, the geometry is placed somewhere totally different.

I then used Transform.PlaneToPlane - which worked better in these cases.

Now I was wondering: what’s the difference between these two Methods?


Use a change of basis transformation when you need to compute the transformation to change coordinates from one plane to another. For example, of you had coordinates based on a (construction) plane and you wanted them transformed into world coordinates, you’d create a Transform.ChangeBasis transformation.

The change of basis transformation is not the same as the rotation transformation that rotates one orthonormal frame to another. The Orient3Pt command uses a rotation transformation.