Take the 2-minute tour ×

I have a set of fractional coordinates.

I also have a rotation matrix that operates on cartesian coordinates.

Does anyone know how I could convert my rotation matrix so I can operate on the fractional coordinates?

The fractional coordinates are functions of the basis vectors a,b,c and the corresponding alpha, beta, gamma.

Any ideas?


share|improve this question
This is not a programming question per se, it is an algorithm question. programmers.stackexchange.com would be a better place to ask. –  wallyk Aug 15 '12 at 4:58

1 Answer 1

I assume that you're asking this question because you don't want to convert your coords to cartesian, do the rotation, then convert back. So suggesting you do so is a bad idea =)

I'll suggest something to try, but with the caveat that I don't have any contact with fractional coordinates ever...

I think of rotation matrices as simply an axis system: the unit X-, Y- and Z-axes rotated into new directions. So, how about converting each axis in the matrix to a fractional coorinate?

Depending on your matrix, it may be the transpose of what I describe:

[ x0 x1 x2 ;
  y0 y1 y2 ;
  z0 z1 z2 ]

So in the above, I'd do the cartesian-to-fractional calculation on each row. The vectors will come out non-orthogonal but that's the point, right? Then it ought to be ready to use on fractional vectors.

share|improve this answer

Your Answer


