isoview Règle la vue isométrique des repères graphiques

## Syntaxe

                isoview
                isoview on
                isoview off
                isoview(idGraphics)
                isoview(idGraphics, "on"|"off")

## Paramètres

"on" | "off" | <none>
  Active, désactive ou commute la vue isométrique pour les repères graphiques considérés.
idGraphics
  Vecteur d'identifiants graphiques. Tous les repères graphiques afférents sont traités. Par défaut, le repère actif est traité.

## Description

`isoview` est utilisée pour activer ou désactiver l'affichage graphique en échelles isométriques sur les axes x, y, voire z, sans modifier la taille de la fenêtre graphique.

`isoview()` ou simplement `isoview` commute la vue isométrique/normale pour le repère actif, en conservant ses bornes.

`isoview("on")` ou `isoview on` active la vue isométrique pour le repère actif.

`isoview("off")` ou `isoview off` relaxe les échelles en x, y (voire z) pour le repère actif.

`isoview(idGraphics,..)` agit sur tous les repères graphiques impliqués dans le vecteur d'identifiants graphiques donné :

- Si `idGraphics(i)` désigne une figure, tous ses repères graphiques sont considérés.
- Si `idGraphics(i)` représente un repère graphique, il est modifié comme tel.
- Si `idGraphics(i)` désigne un sous-composant d'un repère (telle qu'une courbe polyline, un agrégat compound, etc), son repère graphique parent est considéré.

Après l'appel à `isoview(..)`, le repère actif reste le même, y compris lorsque plusieurs repères ont été traités.
Il est possible de tracer directement des courbes en échelles isométriques en utilisant l'option `plot2d(...,frameflag=4)` lors de l'appel, sans devoir utiliser `isoview` après coup.

### Affichage selon .isoview et .cube_scaling

isoview(..) | gca().isoview | gca().cube_scaling | Rendu graphique
on | on | off | X, Y et Z sont isométriques
off | off | on | Echelles en X, Y and Z indépendantes. En 3D, facteur de forme amélioré lorsque les étendues en X/Y/Z sont très différentes.
| off | off | Echelles en X, Y, Z indépendantes. En 3D, les facteurs d'échelles X/Y/Z rendus en perspective sont similaires à ceux des données.
| on | on | Les échelles graphiques sont fixées de sorte que le repère graphique apparaisse carré ou cubique.

## Exemples

    t = [0:0.1:2*%pi]';
    clf
    nc = 3;

    subplot(2,nc,1)
    plot2d(cos(t),sin(t))
    xtitle("Véritable cercle")
    a1 = gca();

    subplot(2,nc,nc+1)
    plot2d(cos(t),sin(t))
    isoview

    subplot(2,nc,2)
    plot2d(7*cos(t),2*sin(t))
    xtitle("Véritable ellipse")
    a2 = gca();

    subplot(2,nc,nc+2)
    plot2d(7*cos(t),2*sin(t))
    isoview

    // Dessinons une sphère à facettes calculées avec eval3dp()
    deff("[x,y,z] = sph(alp,tet)",[
          "x = r*cos(alp).*cos(tet)+orig(1)*ones(tet)"; ..
          "y = r*cos(alp).*sin(tet)+orig(2)*ones(tet)"; ..
          "z = r*sin(alp)+orig(3)*ones(tet)"]);
    r = 3; orig = [0 0 0];
    [xx,yy,zz] = eval3dp(sph,linspace(-%pi/2,%pi/2,40),linspace(0,%pi*2,40));
    subplot(2,nc,3)
    plot3d(xx, yy, zz, alpha=60, flag=[color("green") 8 4])
    zlabel("isoview off", "rotation", -90, "fontsize",4)
    xtitle("Véritable sphère")
    a3 = gca();
    subplot(2,nc,nc+3)
    plot3d(xx, yy, zz, alpha=60, flag=[color("green") 8 4])
    zlabel("isoview on", "rotation", -90, "fontsize",4)
    isoview

    // Commutation en vue isométrique/normale pour tous les repères de la fenêtre
    isoview(gcf())

    // Passage en vue isométrique de tous les repères de la fenêtre graphique
    isoview(gcf(), "on")

    // Passage en vue normale du repère actif
    isoview off

    // Passage en vue isométrique des repères graphiques du haut
    isoview(gcf(),"off")
    isoview([a1 a2 a3], "on")

t = [0:0.1:2*%pi]'; clf f = gcf(); f.axes_size = [850 400]; nc = 3; subplot(2,nc,1) plot2d(cos(t),sin(t)) xtitle("True circle") a1 = gca(); subplot(2,nc,nc+1) plot2d(cos(t),sin(t)) isoview subplot(2,nc,2) plot2d(7*cos(t),2*sin(t)) xtitle("True ellipse") a2 = gca(); subplot(2,nc,nc+2) plot2d(7*cos(t),2*sin(t)) isoview // plot of a sphere using facets computed by eval3dp deff("[x,y,z] = sph(alp,tet)",["x = r*cos(alp).*cos(tet)+orig(1)*ones(tet)"; .. "y = r*cos(alp).*sin(tet)+orig(2)*ones(tet)"; .. "z = r*sin(alp)+orig(3)*ones(tet)"]); r = 3; orig = [0 0 0]; [xx,yy,zz] = eval3dp(sph,linspace(-%pi/2,%pi/2,40),linspace(0,%pi*2,40)); subplot(2,nc,3) plot3d(xx, yy, zz, alpha=60, flag=[color("green") 8 4]) zlabel("isoview off", "rotation", -90, "fontsize",4) xtitle("True sphere") a3 = gca(); subplot(2,nc,nc+3) plot3d(xx, yy, zz, alpha=60, flag=[color("green") 8 4]) zlabel("isoview on", "rotation", -90, "fontsize",4) isoview

    // Utilisation de l'option frameflag=4  de plot2d() :
    r = linspace(1,10,200);
    t = r*3;
    scf();
    subplot(1,2,1)
    plot2d(r.*sin(t),r.*cos(t))
    xtitle("plot2d(..)")

    subplot(1,2,2)
    plot2d(r.*sin(t),r.*cos(t),frameflag=4)
    xtitle("with frameflag=4")

r = linspace(1,10,200); t = r*3; scf(); subplot(1,2,1) plot2d(r.*sin(t),r.*cos(t)) xtitle("plot2d(..)") subplot(1,2,2) plot2d(r.*sin(t),r.*cos(t),frameflag=4) xtitle("avec frameflag=4")

## Voir aussi

- replot
- Axes properties

## Historique

6.0

- Ajout des drapeaux "on", "off".
- Ajout des paramètres d'entrée <none> et idGraphics.

6.0.2 "isoview on" désormais fixe .cube_scaling="off", et "isoview off" fixe .cube_scaling="on".
6.1 La syntaxe `isoview(xmin, xmax, ymin, ymax)` n'est plus acceptée.