The Euler angles are used in classical mechanics to discuss the rotation, nutation, and precession of a rotating solid body.
https://mathworld.wolfram.com/EulerAngles.html
Each of those processes (for example, in a child's toy top) is the evolution of one of the three Euler angles.
I haven't seen them used in computer-graphic interfaces, but that's not my field.
Using Euler or Tait-Bryan (yaw, pitch, roll) angles to describe orientation or free rotation in 3D is wrong, because
- There are 24 different definitions: 6 axis choices for Euler, 6 for Tait-Bryan, and both can be using either intrinsic or extrinsic rotations.
Nobody agrees to exactly which one is which. - Gimbal lock.
What you do, is use a bivector or unit quaternion, a four-component description of type R=(r; i, j, k).
One useful interpretation is that if (x, y, z) is your unit axis vector (x²+y²+z²=1) and φ is the rotation around that axis, then r=cos(φ/2), i=x·sin(φ/2), j=y·sin(φ/2), k=z·sin(φ/2). After any operation on this description, you normalize it by dividing the four components by sqrt(r²+i²+j²+k²), so that r²+i²+j²+k²=1 always. This normalization does not induce any directional or rotational bias, unlike e.g. matrix orthonormalization does.
There are rules on how two rotations are combined (Hamilton product, not associative). Just like with matrices, a series of rotations is applied from right to left. There is a 1:1 mapping between these and 3×3 orthonormal matrices, although the matrix-to-description has three branches, depending on which of the three diagonal elements in the matrix has the largest absolute value, for numerical stability and accuracy with e.g. floating-point numbers.
Now, consider a virtual track ball, i.e. the rectangular window in which some 3D view is shown.
Choose some diameter, usually around half the smaller edge of the rectangular window or slightly more, and think of a circle of that diameter in the center of the window.
When the user drags outside the circle, apply a rotation (using the aforementioned axis-and-angle definition) in the plane of the display, i.e. with the axis perpendicular to the display plane. This lets them rotate the view by dragging near the wider edge of the viewing window.
When the user drags within the window, consider the drag path as if a finger on top of the virtual sphere. This gives you an axis and an angle with respect to the virtual trackball, but note that both change as the drag continues. (So, during the dragging, the rotation is with respect to the orientation before the rotation started, and both the axis and the angle can vary.)
If the user drags outside the window, use the point where the circle exits the line between the drag start and endpoints as the virtual sphere endpoint, but increase the rotation based on how far outside the sphere the user dragged. I recommend using nonlinear, even square, "acceleration" here, so that the user can do larger (180°) rotations faster than having to drag three or four times over the virtual trackball. But make sure the transition outside the circle is smooth.
It is the most intuitive interface I know. When the point on the surface of the virtual sphere that the drag started at tracks the drag end point closely, you know you got it right.
One thing I've found indispensable on a laptop is a Fn keystroke to disable the trackpad. Otherwise on many machines it picks up the heel of your hand and suddenly the cursor is "somewhere else".
I beg your pardon. Language, please!
What? It's the name of the effin key. Oh. Oooh.