IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Quiver, pointes de flêches trop large!


Sujet :

MATLAB

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Par défaut Quiver, pointes de flêches trop large!
    Bonjour à tous,

    J'ai un petit souci avec la fonction quiver. En effet, mon axe des y est défini sur [0,2] et l'axe des x sur [0,0.1]. Lorsque je fais quiver, les têtes des flêches sont énormes sur l'axe des x (et normal sur l'axe des y). J'ai trouvé comment modifier la tête d'une arrow normale mais sur celles utilisées sur quiver je ne sais pas le faire.
    J'ai essayé de définir la taille maximale des têtes de flêches avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    quiv = quiver(AA,II,AAdot,IIdot);
    set(quiv,'MaxHeadSize',0.001);
    Mais rien n'y fait (même avec des autres valeures pour MaxHeadSize).

    Quelqu'un aurait-il une idée pour changer ces pointes de flêches?

    Merci d'avance et meilleures salutations,

    N.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Bonjour.
    Les flèches sont paramétrées dans la fonction quiver.
    Tu fais tu modifies les paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    % Arrow head parameters
    alpha = 0.1;%0.33; % Size of arrow head relative to the length of the vector
    beta = 0.33;  % Width of the base of the arrow head relative to the length
    Tu sauvegardes une nouvelle fonction quiver1
    ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 32
    Par défaut
    Bonjour,

    Merci de votre réponse! J'ai néanmoins encore deux soucis. Premièrement, si je sauve le fichier quiver1.m dans le répertoire courant, matlab me retourne l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ??? Undefined function or method 'checkpvpairs' for input arguments of type
    'cell'.
     
    Error in ==> quiver1>parseargs at 242
    msg = checkpvpairs(pvpairs);
     
    Error in ==> quiver1 at 46
      [pvpairs,unused,unused,msg] = parseargs(args);
     
    Error in ==> partie2 at 38
    quiv = quiver1(AA,II,AAdot,IIdot);
    J'ai donc sauvé quiver1.m dans le dossier specgraph (là où se trouve les autres fonctions graphiques t.q. quiver, etc.) et ça marche. (Mais je n'aime pas trop sauvé dans ses dossiers car je dois lancer matlab en root, hum, vraiment pas bon).

    Second problème, plus important, est que apparement, la fonction Lquiverv6 n'est pas appelée car à cet endroit de la fonction quiver1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function hh = quiver1(varargin)
     
    [v6,args] = usev6plotapi(varargin{:},'-mfilename',mfilename);
    if v6
      h = Lquiverv6(args{:});
    else
    [...]
    Il entre dans le else et n'appelle donc pas Lquiver6 (dans laquelle on modifie les paramètres alpha et beta...).

    Je ne suis pas sur d'avoir vraiment compris comment marche en détail cette fonction quiver, pourriez-vous éclairer ma lanterne?

    Merci et meilleures salutations,

    N.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Bonjour.
    Je n'ai pas les mêmes instructions !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    function hh = quiver1(varargin)
    % Arrow head parameters
    alpha = 0.1;%0.33; % Size of arrow head relative to the length of the vector
    beta = 0.33;  % Width of the base of the arrow head relative to the length
    autoscale = 1; % Autoscale if ~= 0 then scale by this.
    plotarrows = 1; % Plot arrows
    sym = '';
     
    filled = 0;
    ls = '-';
    ms = '';
    col = '';
     
    nin = nargin;
    % Parse the string inputs
    while isstr(varargin{nin}),
      vv = varargin{nin};
      if ~isempty(vv) & strcmp(lower(vv(1)),'f')
        filled = 1;
        nin = nin-1;
      else
        [l,c,m,msg] = colstyle(vv);
        if ~isempty(msg), 
          error(sprintf('Unknown option "%s".',vv));
        end
        if ~isempty(l), ls = l; end
        if ~isempty(c), col = c; end
        if ~isempty(m), ms = m; plotarrows = 0; end
        if isequal(m,'.'), ms = ''; end % Don't plot '.'
        nin = nin-1;
      end
    end
    .....

Discussions similaires

  1. capture trop large
    Par htristra dans le forum Langage
    Réponses: 2
    Dernier message: 04/04/2006, 11h46
  2. centrage d'une page trop large
    Par bibile dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/12/2005, 01h13
  3. Réponses: 22
    Dernier message: 26/10/2005, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo