### 4.10  (x) cross section/3D plotting options

#### 4.10.1   Plotting a cross section slice through 3D data

When plotting a rendered plot of 3D data, the default option is to plot a column-integrated plot. To change this to a cross section slice, use option 1) in the x) menu (``switch between cross section/projection''). See §?? for examples of how this works. An oblique cross section slice can be set interactively using the 'x' key, see §?? which works by setting a combination of rotation and a cross section slice position.

#### 4.10.2   Plotting a cross section line through 2D data

In 2D, setting the ``switch between cross section/projection'' option in the x) menu to cross section means that rendered plots are in fact a 1D cross section (i.e., a line) through 2D data. The position of the line is completely arbitrary (i.e., can be set for oblique cross sections as well as straight lines) and is set interactively after the usual \$y-\$ and \$x-\$ axis prompts.

#### 4.10.3   Rotating the particles

An angle of rotation about may be set each axis may be set in the x)sec/rotate submenu using the ``rotation on/off/settings'' option or interactively (press 'h' in interactive mode to see the exact keystrokes). The position of the origin about which particles are rotated can be set from the ``rotation on/off/settings'' option in the x) menu. Rotated axes or boxes can be plotted using the ``set axes for rotated/3D plots'' option in the same menu.

Rotations are performed in the order \$z-y-x\$. This means that the \$y-\$ rotation angle is an angle about the new \$y-\$axis, defined by the \$z\$ rotation and similarly for the \$x-\$ rotation. If you think about it long enough, it makes sense. If in doubt, do it interactively and set the angles in the order \$z-y-x\$.

#### 4.10.4   Setting the origin about which particles are rotated

The origin about which particles are rotated and relative to which the radius is calculated when the ``calculate extra quantities'' option is set in the d)ata menu can be changed via the ``rotation on/off/settings'' option in the x) menu.

3D perspective can be turned on via the ``3D perspective on/off'' option in the x) menu. Prompts for setting the perspective position then appear after the usual prompts for y and x axes, rendering and vector plots, i.e., something like the following:

```Please enter your selection now (y axis or option):2
(x axis) (default=1):
(render) (0=none) ([0:20], default=0):
(vector plot) (0=none, 7=B, 10=v, 17=J) ([0:17], default=0):
enter z coordinate of observer (default=1.800):
enter distance between observer and projection screen ([0.000:], default=0.1800):
Graphics device/type (? to see list, default /xwin):
```

3D perspective is defined by two parameters: a distance to the observer \$zobs\$ and a distance between the observer and a screen placed in front of the observer, \$dscreen\$. The transformation from usual \$x\$ and \$y\$ to screen \$x'\$ and \$y'\$ is then given by \$\$

 \$x'\@PAM=\@PAMx*dscreen/(zobs-z), \@PAM\$ \$y'\@PAM=\@PAMy*dscreen/(zobs-z). \@PAM    (4)\$ \$\$

\$\$ This means that objects at the screen distance will have unit magnification, objects closer than the screen will appear larger (points diverge) and objects further away will appear smaller (points converge). The situation could be beautifully illustrated if I could be bothered drawing a figure. I have found reasonable results with something like a \$1/10\$ reduction at the typical distance of the object (i.e., observer is placed at a distance of \$10×\$ object size with distance to screen of \$1×\$ object size). splash sets this as default using the z plot limit as the `object size'.

The position of the 3D observer in \$z\$ can also be changed in interactive mode using 'u' or 'U' (to move 'up') and 'd' or 'D' (to move 'down').

#### 4.10.6   Using 3D surface rendering

3D surface rendering (turned on using the ``3D surface rendering on/off'' option in the x) menu) performs a ray-trace through the particle data, thus visualising the "last scattering surface". When set, the user is prompted for an "optical depth" before plotting which determines the position of the surface. Only applies to 3D data. When set with cross-section (instead of projection), particles at or below the z value of the slice are used.

For examples of the 3D surface rendering in splash , have a look at my movies of neutron star mergers:

http://users.monash.edu.au/~dprice/research/nsmag.

#### 4.10.7   Plotting 3D box / 3D axes

Rotated axes or boxes can be plotted using the ``set axes for rotated/3D plots'' option in the x) menu.

#### 4.10.8   Setting up animation sequences

Animation sequences can be set via the ``set animation sequence'' option in the x) menu. At present the possible sequences that can be added are:

``` 1 : steady zoom on x and y axes
3 : steady change of limits (e.g. for colour bar)
4 : steady movement of 3D observer
5 : sequence of cross section slices through a 3D box
6 : steady change of opacity for 3D surface plots
```

Up to one sequence of each type can be added (i.e., up to 6 in total) with different start and end points (specified in terms of dump file number), with the additional possibility of inserting extra frames between dump files (e.g. to plot a sequence of frames consisting of a changing view of the same dump file).

Animation sequences can also be set using `e' in interactive mode. To set a sequence interactively first adjust the plot settings to correspond to the start of the sequence (pressing `s' to save if this is done in interactive mode). Then in interactive mode move to the dump file you want to be the end-point and also adjust the plot settings to correspond to the end-point of your desired sequence (i.e., adjust the colour bar limits and/or adjust the rotation angle and/or the x/y limits and/or the 3D observer position and/or the opacity). Then, rather than pressing `s' (which would make these become the default plot settings) press `e' instead, saving these settings as the end-point of the desired animation sequence. This can be done multiple times to set multiple sequences.

Animation sequences set up in this manner are saved to a file called `splash.anim` either when prompted (if setting sequences non-interactively) or by pressing 'S' from the main menu which then saves both the `splash.limits` and `splash.anim` files in addition to the usual `splash.defaults` file.

Note: As of version 1.11.1, animation sequences act on a `per page' basis rather than simply `per frame'. This means that you can produce a multi-panelled movie (e.g.) showing the evolution of different runs side by side, with the same animation sequence applied to each.

#### 4.10.9   Plotting a sequence of frames rotating a data set through 360 degrees

This can be achieved by setting an animation sequence with a steady change of rotation angle. See §??.

#### 4.10.10   Plotting a `fly-around' of 3D data

This can be achieved by setting an animation sequence with a steady change of rotation angle. See §??.

#### 4.10.11   Plotting a flythru of 3D data

A sequence of cross section slices progressively deeper into a 3D box or alternatively a steady movement of the 3D observer (on projection plots) can be plotted by setting up an animation sequence. See §?? for details.

A steady change of \$x-\$ and \$y-\$ limits can be added by setting up an animation sequence. See §?? for details.