source: trunk/SRC/ToBeReviewed/PLOTS/DIVERS/projsegment.pro @ 114

Last change on this file since 114 was 114, checked in by smasson, 18 years ago

new compilation options (compile_opt idl2, strictarrsubs) in each routine

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.3 KB
Line 
1;------------------------------------------------------------
2;------------------------------------------------------------
3;------------------------------------------------------------
4; NAME: projsegment
5;
6; PURPOSE: projecte lineairement un segment un vecteur dont les bornes
7; sont [a,b] sur un vecteur dont les bornes sont [c,d]
8;
9; CATEGORY: caculs a 2 francs
10;
11; CALLING SEQUENCE: res=projsegment(vecteur, bornes)
12;
13; INPUTS: vecteur: un vecteur dont le premier element doit etre le
14; plus petit element et le dernier doit etre le plus grand.
15;         bornes: les nouvelles bornes du vecteur.
16;
17; KEYWORD PARAMETERS:
18;
19;         /MP: activer ce motcle pour que la fonction retourne un
20;         vecteur de 2 elements qui sont les coefficient m et p de la
21;         projection lineaire y=mx+p utilisee pour passer du segment
22;         [a,b] au segment [c,d]
23;
24; OUTPUTS:un vecteurs dont les nouvelles bornes sont specifiees par
25; bornes
26;
27; COMMON BLOCKS:
28;
29; SIDE EFFECTS:
30;
31; RESTRICTIONS:
32;
33; EXAMPLE:
34;   
35;   IDL> a=indgen(9)
36;   IDL> print, a
37;          0       1       2       3       4       5       6       7       8
38;   IDL> print, projsegment(a,[0,80])
39;          0      10      20      30      40      50      60      70      80
40;   IDL> print, projsegment(a,[0,-80]) 
41;          0     -10     -20     -30     -40     -50     -60     -70     -80
42;   IDL> print, projsegment(a,[-80,0])   
43;        -80     -70     -60     -50     -40     -30     -20     -10      0
44;
45; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
46;                       24/6/1999
47;------------------------------------------------------------
48;------------------------------------------------------------
49;------------------------------------------------------------
50FUNCTION projsegment, vecteur, bornes, MP = mp
51;--------------------------------------------------------------
52;
53  compile_opt idl2, strictarrsubs
54;
55   a1 = float(vecteur[0])
56   b1 = float(vecteur[n_elements(vecteur)-1])
57   a2 = float(bornes[0])
58   b2 =float( bornes[1])
59   if a1 EQ b1 then return, -1
60   m = (b2-a2)/(b1-a1)
61   p = a2-m*a1
62;--------------------------------------------------------------
63   if keyword_set(mp) then return, [m, p] ELSE return, m*vecteur+p
64;--------------------------------------------------------------
65end
Note: See TracBrowser for help on using the repository browser.