MAPaint Technical Report:
Fixed Point Constraints

next up previous contents
Next: Lines of Intersection Up: Geometry Previous: Look up Tables for

Fixed Point Constraints

Navigation through the volume can be difficult especially since arbitrary sections give rise to unfamiliar views of well-known structures. To aid the navigation the paint program give a ``cartoon'' 3D feedback display showing the rough position of each view with respect to the bounding box (see the section on 3D display). A control within the view windows that can provide assistance for navigation is the option of setting fixed-point constraints. The basic idea of the transformation used is that it may often be possible to identify one or more points within the image that the user wishes to be definitely visible and thereby reduce the search space to setting the viewing angles. If one point is fixed then there are two degrees of freedom left to set the view and if there are two fixed points then there is only one degree of freedom.

The transformation is defined so that by setting one fixed point, ${\bf f}$, the orientation parameters, $\theta $, $\phi$, will rotate the view plane about this point. If two points are fixed then $\theta $ and $\phi$ are dependent and can be represented in parametric form using a third angle parameter, $\psi$, which corresponds to the angle around the line joining the two fixed points.

The two fixed points ${\bf f_1}$ and ${\bf f_2}$ define vector

\begin{displaymath}{\bf n_1} = \frac{{\bf f_2} - {\bf f_1}}{\vert{\bf f_2} - {\bf f_1}\vert}
\end{displaymath}

which must remain in the view plane. The values of $\theta $ and $\phi$which define the plane in which the two fixed points were initially defined, $\theta_0$ and $\phi_0$, define an axis perpendicular to ${\bf n_1}$

\begin{displaymath}{\bf n_2} = R_{0}^{-1} {\bf z},
\end{displaymath}

where R0 is the rotation matrix defined by $\theta_0, \phi_0$ and ${\bf z} = (0,0,1)^T$. A third axis, ${\bf n_3} = {\bf n_1} \wedge {\bf n_2}$, is perpendicular to both ${\bf n_1}$ and ${\bf n_2}$ and can be used to define the normal to a viewing plane which contains the two fixed points:

\begin{displaymath}{\bf n} = cos(\psi) {\bf n_2} + sin(\psi) {\bf n_3},
\end{displaymath}

where $0 \le \psi \le 2\pi$, and $\psi = 0.0$ is the original fixed plane. If we demand that ${\bf f}$ is equal to one of the two fixed points and that the viewing direction is ${\bf n}$ then both fixed points will be visible. The corresponding viewing angles are given by:
$\displaystyle cos(\phi)$ = nz, (18)
$\displaystyle tan(\theta)$ = $\displaystyle \frac{n_y}{n_x}.$ (19)

Note if ${\bf n} = {\bf z}$ then $\theta $ is ill-defined. In the program paint the third Euler angle $\zeta$ is determined by requiring that the vector ${\bf n_1}$ maintains a constant angle to the vertical on the screen. This angle is determined by when the fixed line is first set.

In the 3D paint program the fixed point constraints are implemented so that they remain in force whilst only the angles are being modified. Resetting the first fixed point or changing the distance parameter will cancel the second fixed point constraint.


next up previous contents
Next: Lines of Intersection Up: Geometry Previous: Look up Tables for

Richard Baldock
1998-06-05