Mercurial > octave
annotate scripts/plot/appearance/camorbit.m @ 24188:1253132e2173
Use "clf;" at beginning of all plot demos.
* camlookat.m, camorbit.m, campos.m, camroll.m, camtarget.m, camup.m,
camva.m, camzoom.m, grid.m, camlight.m, ezplot.m, isocaps.m, isocolors.m,
isonormals.m, isosurface.m, light.m, plot.m, reducepatch.m, smooth3.m,
subplot.m: Use "clf;" at beginning of all plot demos.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 30 Oct 2017 21:22:15 -0700 |
parents | 141e6e16d900 |
children | 206ef5cb8b16 |
rev | line source |
---|---|
24132
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
1 ## Copyright (C) 2016 Colin B. Macdonald |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
2 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
3 ## This file is part of Octave. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
4 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
5 ## Octave is free software; you can redistribute it and/or modify it |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
7 ## the Free Software Foundation; either version 3 of the License, or (at |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
8 ## your option) any later version. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
9 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
10 ## This software is distributed in the hope that it will be useful, |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
11 ## but WITHOUT ANY WARRANTY; without even the implied warranty |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
12 ## of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
13 ## General Public License for more details. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
14 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
16 ## License along with this software; see the file COPYING. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
17 ## If not, see <http://www.gnu.org/licenses/>. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
18 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
20 ## @deftypefn {} {} camorbit (@var{theta}, @var{phi}) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
21 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, @var{coorsys}) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
22 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, @var{coorsys}, @var{dir}) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
23 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
24 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data", "z") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
25 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data", "x") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
26 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data", "y") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
27 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data", [@var{x} @var{y} @var{z}]) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
28 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "camera") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
29 ## @deftypefnx {} {} camorbit (@var{hax}, @dots{}) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
30 ## Rotate the camera up/down and left/right around its target. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
31 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
32 ## Move the camera @var{phi} degrees up and @var{theta} degrees to the right, |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
33 ## as if it were in an orbit around its target. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
34 ## Example: |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
35 ## @example |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
36 ## @group |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
37 ## @c doctest: +SKIP |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
38 ## sphere () |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
39 ## camorbit (30, 20) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
40 ## @end group |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
41 ## @end example |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
42 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
43 ## These rotations are centered around the camera target |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
44 ## (@pxref{XREFcamtarget,,camtarget}). |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
45 ## First the camera position is pitched up or down by rotating it @var{phi} |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
46 ## degrees around an axis orthogonal to both the viewing direction (specifically |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
47 ## @code{camtarget() - campos()}) and the camera ``up vector'' |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
48 ## (@pxref{XREFcamup,,camup}). |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
49 ## Example: |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
50 ## @example |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
51 ## @group |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
52 ## @c doctest: +SKIP |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
53 ## camorbit (0, 20) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
54 ## @end group |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
55 ## @end example |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
56 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
57 ## The second rotation depends on the coordinate system @var{coorsys} and |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
58 ## direction @var{dir} inputs. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
59 ## The default for @var{coorsys} is @qcode{"data"}. In this case, the camera is |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
60 ## yawed left or right by rotating it @var{theta} degrees around an axis |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
61 ## specified by @var{dir}. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
62 ## The default for @var{dir} is @qcode{"z"}, corresponding to the vector |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
63 ## @code{[0, 0, 1]}. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
64 ## Example: |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
65 ## @example |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
66 ## @group |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
67 ## @c doctest: +SKIP |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
68 ## camorbit (30, 0) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
69 ## @end group |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
70 ## @end example |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
71 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
72 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
73 ## When @var{coorsys} is set to @qcode{"camera"}, the camera is moved left or |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
74 ## right by rotating it around an axis parallel to the camera up vector |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
75 ## (@pxref{XREFcamup,,camup}). |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
76 ## The input @var{dir} should not be specified in this case. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
77 ## Example: |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
78 ## @example |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
79 ## @group |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
80 ## @c doctest: +SKIP |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
81 ## camorbit (30, 0, "camera") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
82 ## @end group |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
83 ## @end example |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
84 ## (Note: the rotation by @var{phi} is unaffected by @qcode{"camera"}.) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
85 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
86 ## The @code{camorbit} command modifies two camera properties: |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
87 ## @pxref{XREFcampos,,campos} and @pxref{XREFcamup,,camup}. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
88 ## |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
89 ## By default, this command affects the current axis; alternatively, an axis |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
90 ## can be specified by the optional argument @var{hax}. |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
91 ## |
24136
141e6e16d900
Add function camlookat (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
24134
diff
changeset
|
92 ## @seealso{camzoom, camroll, camlookat} |
24132
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
93 ## @end deftypefn |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
94 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
95 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
96 function camorbit (varargin) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
97 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
98 [hax, varargin, nargin] = __plt_get_axis_arg__ ("camorbit", varargin{:}); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
99 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
100 if (nargin < 2 || nargin > 4) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
101 print_usage (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
102 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
103 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
104 theta = varargin{1}; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
105 phi = varargin{2}; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
106 if (! (isnumeric (theta) && isscalar (theta) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
107 && isnumeric (phi) && isscalar (phi))) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
108 error ("camorbit: THETA and PHI must be numeric scalars") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
109 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
110 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
111 if (nargin < 3) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
112 coorsys = "data"; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
113 else |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
114 coorsys = varargin{3}; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
115 if (! any (strcmpi (coorsys, {"data" "camera"}))) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
116 error ("camorbit: COORSYS must be 'data' or 'camera'") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
117 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
118 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
119 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
120 if (nargin < 4) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
121 dir = "z"; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
122 else |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
123 if (strcmpi (coorsys, "camera")) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
124 error ("camorbit: DIR must not be used with 'camera' COORSYS."); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
125 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
126 dir = varargin{4}; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
127 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
128 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
129 if (ischar (dir)) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
130 switch tolower (dir) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
131 case "x" |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
132 dir = [1 0 0]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
133 case "y" |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
134 dir = [0 1 0]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
135 case "z" |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
136 dir = [0 0 1]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
137 otherwise |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
138 error ("camorbit: DIR must be 'x', 'y', 'z' or a numeric 3-element \ |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
139 vector."); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
140 endswitch |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
141 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
142 if (! (isnumeric (dir) && numel (dir) == 3)) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
143 error ("camorbit: DIR must be 'x', 'y', 'z' or a numeric 3-element \ |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
144 vector."); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
145 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
146 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
147 if (isempty (hax)) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
148 hax = gca (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
149 else |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
150 hax = hax(1); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
151 endif |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
152 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
153 view_ax = camtarget (hax) - campos (hax); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
154 view_ax /= norm (view_ax); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
155 ## orthogonalize the camup vector |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
156 up = camup (hax) - view_ax*dot (camup (hax), view_ax); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
157 up /= norm (up); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
158 pitch_ax = cross (up, view_ax); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
159 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
160 if (strcmpi (coorsys, "camera")) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
161 yaw_ax = up; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
162 else |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
163 yaw_ax = dir; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
164 end |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
165 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
166 ## First pitch up then yaw right (order matters) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
167 pos = num2cell (campos (hax)); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
168 [pos{:}] = __rotate_around_axis__ (pos{:}, phi, pitch_ax, camtarget (hax)); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
169 [pos{:}] = __rotate_around_axis__ (pos{:}, theta, yaw_ax, camtarget (hax)); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
170 pos = [pos{:}]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
171 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
172 up = num2cell (up); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
173 [up{:}] = __rotate_around_axis__ (up{:}, phi, pitch_ax, [0 0 0]); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
174 [up{:}] = __rotate_around_axis__ (up{:}, theta, yaw_ax, [0 0 0]); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
175 up = [up{:}]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
176 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
177 camup (hax, up) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
178 campos (hax, pos) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
179 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
180 endfunction |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
181 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
182 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
183 %!demo |
24188
1253132e2173
Use "clf;" at beginning of all plot demos.
Rik <rik@octave.org>
parents:
24136
diff
changeset
|
184 %! clf; |
24132
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
185 %! peaks (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
186 %! ## rotate the camera upwards |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
187 %! camorbit (0, 30); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
188 %! ## rotate the camera right |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
189 %! camorbit (20, 0); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
190 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
191 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
192 %!test |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
193 %! hf = figure ("visible", "off"); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
194 %! unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
195 %! sphere (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
196 %! campos ([20 0 0]); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
197 %! camorbit (0, 60); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
198 %! p = campos (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
199 %! u = camup (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
200 %! assert (p, [10 0 sqrt(3)*10], -eps); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
201 %! assert (u, [-sqrt(3)/2 0 0.5], -eps); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
202 %! unwind_protect_cleanup |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
203 %! close (hf); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
204 %! end_unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
205 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
206 %!test |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
207 %! hf = figure ("visible", "off"); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
208 %! unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
209 %! sphere (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
210 %! camorbit(20, 30, "camera") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
211 %! p = campos (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
212 %! u = camup (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
213 %! ## Matlab 2008a |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
214 %! pm = [-0.724972932190484 -9.37224596596009 14.5476946558943]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
215 %! um = [0.375634339316796 0.77045096344497 0.515076844803523]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
216 %! assert (p, pm, -5e-15); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
217 %! assert (u, um, -5e-15); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
218 %! unwind_protect_cleanup |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
219 %! close (hf); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
220 %! end_unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
221 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
222 %!test |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
223 %! hf = figure ("visible", "off"); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
224 %! unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
225 %! sphere (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
226 %! camorbit(20, 30, "data", [1 2 3]); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
227 %! p = campos (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
228 %! u = camup (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
229 %! ## Matlab 2014a |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
230 %! pm = [-0.215772672525099 -9.04926615428815 14.7669978066852]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
231 %! um = [0.413058199972826 0.773801198226611 0.48022351989284]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
232 %! assert (p, pm, -5e-15); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
233 %! assert (u, um, -5e-15); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
234 %! unwind_protect_cleanup |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
235 %! close (hf); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
236 %! end_unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
237 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
238 %!test |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
239 %! hf = figure ("visible", "off"); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
240 %! unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
241 %! sphere (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
242 %! camorbit (54, 37); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
243 %! p = campos (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
244 %! u = camup (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
245 %! va = camva (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
246 %! ## Matlab 2014a |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
247 %! pm = [1.92211976102821 -6.48896756467585 15.9436117479337]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
248 %! um = [-0.261437503254928 0.882598219532154 0.390731128489274]; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
249 %! vam = 10.1274850414735; |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
250 %! assert (p, pm, -5e-15); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
251 %! assert (u, um, -5e-15); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
252 %! assert (va, vam, -5e-15); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
253 %! unwind_protect_cleanup |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
254 %! close (hf); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
255 %! end_unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
256 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
257 ## another figure, test hax |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
258 %!test |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
259 %! hf = figure ("visible", "off"); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
260 %! unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
261 %! hax = subplot (1, 2, 1); |
24134
046593530e95
* camorbit.m: Fix typo (bug #52149).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24132
diff
changeset
|
262 %! sphere (hax); |
24132
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
263 %! x = campos (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
264 %! camorbit (20, 30) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
265 %! subplot (1, 2, 2); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
266 %! sphere (); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
267 %! camorbit (hax, -20, -30) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
268 %! y = campos (hax); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
269 %! assert (x, y, -eps); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
270 %! unwind_protect_cleanup |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
271 %! close (hf); |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
272 %! end_unwind_protect |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
273 |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
274 ## Test input validation |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
275 %!error <numeric scalars> camorbit ([1 2], [3 4]) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
276 %!error <Invalid call> camorbit (1, 2, "data", "z", 42) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
277 %!error <DIR must be> camorbit (1, 2, "data", "meh") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
278 %!error <DIR must be> camorbit (1, 2, "data", [1 2 3 4]) |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
279 %!error <DIR must not be> camorbit (1, 2, "camera", "x") |
4e97a92d16c0
Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
280 %!error <COORSYS must be> camorbit (1, 2, "meh") |