Transformation de coordonnées cartésiennes en coordonnées polaires.


Algorithme pour transformer des coordonnées cartésiennes (x,y) en coordonnées polaires (r,t):

              /|
             / |
            /  |
           /   |
       r  /    | y
         /     |
        /      |
       /  t    |
      /________|
          x

     r2 = x2+y2
     t = arctg (y/x) auquel il faut ajouter pi si x < 0 (cf quadrant)
          sauf si x = 0,   t = pi/2        si y > 0
                           t = - pi/2      si y < 0
                           t n'existe pas  si y = 0
réel x, y, r, t
écrire "Introduisez l'abscisse x:"
lire x
écrire "Introduisez l'ordonnée y:"
lire y
r <-- (x2+y2)1/2
si x=0 alors si y>0 alors  écrire "r=", r ," et t= ", pi/2
             sinon si y<0 alors  écrire "r=", r ," et t= ", -pi/2
                   sinon  écrire "r=", r ," et t n'existe pas."
                   fsi
             fsi
sinon  t <-- arctg (y/x)
       si x<0 alors  t <-- t + pi
       fsi
       écrire "r=", r ," et t= ", t
fsi
PROGRAM Cartesien_Polaire;
VAR x, y, r, t, pi : REAL;
BEGIN
WRITE('Introduisez l''abscisse x:');
READLN(x);
WRITE('Introduisez l''ordonnée y:');
READLN(y);
pi := 3.1416;
r := SQRT(x*x+y*y);
IF x=0 THEN IF y>0 THEN WRITELN('r=', r:5:2 ,' et t= ', pi/2:5:2)
            ELSE IF y<0 THEN WRITELN('r=', r:5:2 ,' et t= ', -pi/2:5:2)
                 ELSE WRITELN('r=', r:5:2 ,' et t n''existe pas.')
ELSE BEGIN
     t := ARCTAN(y/x);
     IF x<0 THEN t := t + pi;
     WRITELN('r=', r:5:2 ,' et t= ', t:5:2)
     END;
END.


Page précédente.

Page d'accueil.