Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!hellgate.utah.edu!helios.ee.lbl.gov!ucsd!ucsdhub!hp-sdd!apollo!oj From: oj@apollo.HP.COM (Ellis Oliver Jones) Newsgroups: comp.graphics Subject: Re: Errors in rotations Keywords: ROTATIONS Message-ID: <47d784ba.20b6d@apollo.HP.COM> Date: 4 Jan 90 23:49:00 GMT References: <1990Jan2.163405.24094@ibmpcug.co.uk> Sender: root@apollo.HP.COM Reply-To: oj@apollo.hp.com Organization: HP Apollo Computer, Chelmsford, MA Lines: 29 In article <1990Jan2.163405.24094@ibmpcug.co.uk> peterl@ibmpcug.co.uk (Peter Leaback) writes: >...I define my rotations as a 3x3 matrix containing 16 bit >fixed point numbers from 1 to -1. ... after a few >thousand rotations,the errors that occur in combining rotations has >malformed the matrix.... I faced this problem some years ago on an E&S Picture System II. I used a compromise solution (hack) as follows. (1) The rotation matrix was kept separate, and was not composed with translation or perspective matrices. (2) A good rotation matrix (as opposed to a malformed one) is unitary. This means that its determinant is one, obviously, but it also means that each of the rows taken by itself is a unit vector. Ditto for the columns. (3) Every nth rotation cycle (1