Lef-Hand and Right-Hand Coordinate Space Confusion

Started by
6 comments, last by ZQJ 18 years, 9 months ago
I'm getting a little confused over this topic. First, here is my understanding: Left-Hand: y+ | Z+ | / |/_ _ _ X+ Right-Hand: y+ | Z+ | / |/_ _ _ X- The problem is I read Right-Hand cordinate space being described as z- going into the screen and this seems to go against Right-Hand space as I understand it. Not to mention other apparent contradictions from other sources. If any one can clarify I would appreciate it.
Advertisement
Quote:Original post by eben
Right-Hand:

y+
| Z+
| /
|/_ _ _ X-
That is right-handed, but the usual way it is defined is +X to the right and +Z coming out of the screen.
Quote:Original post by Kalidor
Quote:Original post by eben
Right-Hand:

y+
| Z+
| /
|/_ _ _ X-
That is right-handed, but the usual way it is defined is +X to the right and +Z coming out of the screen.



Oh I get it, you spin it around about the "y", I should have payed more attention. Thanks.
From what I know, the only thing that changes is the z-axis: in right-handed it is positive into the screen, while in left-handed it is poitive out from the screen (or the other way around)...
Just to clarify for the OP, I'm pretty sure that the 'official' definition of coordinate system handedness has nothing to do with which axis points 'into the screen'. Rather, it is only concerned with the relative orientation of the axes (the standard 'hold up your left or right hand' trick).

Now, in graphics it is convenient (or perhaps just conventional) for +x to be to the right and +y to be up. The practical result is that with a LH system +z is usually into the screen, and with a RH system it is usually -z.
Quote:Original post by jyk
... coordinate system handedness has nothing to do with which axis points 'into the screen'. Rather, it is only concerned with the relative orientation of the axes (the standard 'hold up your left or right hand' trick).

Now, in graphics it is convenient (or perhaps just conventional) for +x to be to the right and +y to be up. The practical result is that with a LH system +z is usually into the screen, and with a RH system it is usually -z.

Yes. Since you can rotate a coordinate system any way you like without changing it "handedness", any axis can point in any direction. Handedness refers to the direction of one axis relative to the others.

People say that the Z axis goes into the screen in a LH system and out of the screen in a RH system only because those are the directions of the view space Z axis in DirectX (LH) and OpenGL (RH), respectively.
John BoltonLocomotive Games (THQ)Current Project: Destroy All Humans (Wii). IN STORES NOW!
I'd venture that most people who don't have much of an academic math background, like me, probably view the X axis going to the right, and the Y axis going up, and therefore it makes sense to them to define the coordinate system in terms of the direction of Z.

I wouldn't say it's necessarily anything to do with OpenGL or DirectX. In my experience with math, X has always been to the right, and Y has always been up.
Quote:Original post by Oxyacetylene
I wouldn't say it's necessarily anything to do with OpenGL or DirectX. In my experience with math, X has always been to the right, and Y has always been up.


True, but in my experience 3D graphs usually have Z up, X right and Y in (more or less... it's usually rotated a bit so it's X right and a bit out, Y in and a bit right). Computer coordinate systems have always been at odds with maths anyway really since CRTs draw from top to bottom so in raster graphics Y increases down and not up. Except of course in the BMP format which for some reason is the other way round. As far as I remember Quake (all 3, and maybe Doom 3 as well) uses and left handed system where Z is up and X and Y are in the horizontal plane.

There's two conventions I like to stick to: anticlockwise ordering of polygon points and right handed coordinate systems. This is basically because every maths and physics paper ever written (as far as I know) uses these conventions, even if it seems a bit odd to computer programmers.

This topic is closed to new replies.

Advertisement