annotate main/plot/view.m @ 0:6b33357c7561 octave-forge

Initial revision
author pkienzle
date Wed, 10 Oct 2001 19:54:49 +0000
parents
children 34f9eb28a899
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
1 ## Copyright (C) 1998 Ariel Tankus
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
2 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
3 ## This program is free software.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
4 ## This file is part of the Image Processing Toolbox for Octave
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
5 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
6 ## This program is free software; you can redistribute it and/or
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
7 ## modify it under the terms of the GNU General Public License
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
8 ## as published by the Free Software Foundation; either version 2
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
9 ## of the License, or (at your option) any later version.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
10 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
11 ## This program is distributed in the hope that it will be useful,
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
12 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
14 ## GNU General Public License for more details.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
15 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
16 ## You should have received a copy of the GNU General Public License
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
17 ## along with this program; if not, write to the Free Software
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
18 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
19 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
20
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
21 ## view Change the viewing angle for a 3-D plot.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
22 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
23 ## view(az, el)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
24 ## az - horizontal viewing angle (azimuth) [degrees].
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
25 ## el - vertical viewing angle (elevation) [degrees].
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
26 ##
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
27
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
28 ## Author: Ariel Tankus <arielt@math.tau.ac.il>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
29 ## Created: 14.8.98.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
30 ## Version: 1.0
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
31
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
32 function view(az, el)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
33
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
34 ## azimuth is the same as rotation around the z-axis,
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
35 ## so gnuplot's z_axis == az.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
36 az = rem(az, 360); # set az in range: [-360, 360].
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
37 az = az + 360*(az < 0); # set az in range: [0, 360].
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
38
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
39 ## elevation: 0 deg - equator, 90 deg - north pole.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
40 ## in gnuplot: 0 deg - north pole, 90 deg - equator.
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
41 rot_x = 90 - el;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
42
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
43 ## elevation is in gnuplot coordinates
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
44
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
45 rot_x = rem(rot_x, 360); # set rot_x in range: [-360, 360].
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
46 rot_x = rot_x + 360*(rot_x < 0); # set rot_x in range: [0, 360].
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
47
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
48 if (rot_x > 180)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
49 ## elevation greater than 180 degs is
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
50 az = rem(az + 180, 360);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
51 rot_x = 360 - rot_x;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
52 end
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
53
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
54 gset('view', num2str(rot_x), ',', num2str(az));
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
55 replot;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
56
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
57 endfunction