To main page | 3dengine.org

# Pitch

**Pitch** (in Heading, pitch and roll angles) is the rotation around HORIZONTAL axis. Which is X-positive (or 1,0,0) in default OpenGL.

It determines whether camera is looking up or down (or any in-between).

## Limits

Usually its -90 degress to 90 degrees (-91 degree is the same as looking BACK(heading=180deg) and UPSIDE DOWN(roll=180), therefore pitch should be limited to -90 to 90 - anything after that can be expressed via other heading and roll).

## Singularity

When pitch is -90 or 90 degress, the heading and roll is pretty much the same thing - it doesn't matter whether human, looking exactly up, is rotating only his head around the center of his eyes (roll) or he is rotating with all his body around vertical axis (heading).

## Calculating pitch from MODELVIEW matrix

It determines whether camera is looking up or down (or any in-between).

if (abs(modelview[2])<0.001) { pitch = asin(modelview[6])*RAD2DEG; // singularity } else { pitch = atan2(-modelview[1], modelview[2])*RAD2DEG; }; if(pitch<-90) { pitch=pitch+180; } // limit pitch to -90 to 90 range if(pitch>90) { pitch=pitch-180; }where modelview is modelview matrix.