Rotation around screen center

Hi guys,
I’m trying to write an arcball which rotates around the window center (z=0). Unfortunatly I also want to be able to move my objects with this arcball; i.e. rotate, translate scale.
My problem is that I can’t figure out how to handle the rotation with the translation. Currently I’m doing this:


            // Apply "arcball"-modifications to OpenGL.
            GL.Translate(windowCenterVector);
            GL.MultMatrix(ref rotationMatrix);
            GL.Scale(this.scale, this.scale, this.scale);
            GL.Translate(-windowCenterVector);
            GL.Translate(this.translation);

Unforunatly the last translation which applies the arcball offset is affected by the rotation. I tried to transform it with the inverse of the rotation matrix but so I changed the rotation center…

If someone might be able to explain this to me it would be great!

I created a sample-project with OpenTK so if someone want’s to checkout the full code: http://go4x.de/share/WindowsFormsApplication1.zip

Greetings - Thomas