source: trunk/PLOTS/DIVERS/projsegment.pro @ 2

Last change on this file since 2 was 2, checked in by opalod, 22 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.2 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   a1 = float(vecteur[0])
53   b1 = float(vecteur[n_elements(vecteur)-1])
54   a2 = float(bornes[0])
55   b2 =float( bornes[1])
56   if a1 EQ b1 then return, -1
57   m = (b2-a2)/(b1-a1)
58   p = a2-m*a1
59;--------------------------------------------------------------
60   if keyword_set(mp) then return, [m, p] ELSE return, m*vecteur+p
61;--------------------------------------------------------------
62end
Note: See TracBrowser for help on using the repository browser.