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

Scilab Discussion :

affichage progressif


Sujet :

Scilab

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut affichage progressif
    Bonjour,
    j'ai fabriqué le code suivant sous Scilab et qui affiche un triangle de Sierpinski dans un triangle équilatéral (partant de (0;0), on prend de manière répétitive le milieu du point précédent et d'un des sommets A, B ou C choisis au hasard). Le tout est présenté sous forme matricielle.

    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
    nbpoints=10000
    P=zeros(2,nbpoints);
    for i=2:nbpoints 
        tirage=rand();
        if tirage<1/3 then
            A=[[0.5,0];[0,0.5]];V=[0;0];
        else
            if tirage<2/3 then 
                A=[[0.5,0];[0,0.5]];V=[1/2;0]; 
            else 
                A=[[0.5,0];[0,0.5]];V=[1/4;sqrt(3)/4];
            end
        end    
        P(:,i)=A*P(:,i-1)+V;
        plot(P(1,i),P(2,i),"or")
    end
    Obtenir un affichage de la figure une fois terminée est facile: il suffit de sortir l'avant-dernière ligne de la boucle et on obtient sans problème la figure attendue.
    Le fait de placer cette ligne à cet endroit devrait me permettre d'observer un affichage progressif (point après point) de la figure. Or, cet affichage n'est pas lisible car on a un clignotement incessant très désagréable de l'image.
    Quelqu'un connaît-il la solution à ce problème qui dépasse d'ailleurs le cadre stricte de cet exemple particulier, c'est à dire obtenir un affichage progressif lisible d'une construction.
    Pour info, je travaille avec la version 5.4.0 de Scilab sur un Macbook Pro.
    Merci d'avance pour vos lumières.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance en conception mécanique et prototypage
    Inscrit en
    novembre 2006
    Messages
    20 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance en conception mécanique et prototypage

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 244
    Points : 54 510
    Points
    54 510
    Par défaut
    Essaie ceci :

    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
    nbpoints=10000;
    P=zeros(2,nbpoints);
     
    f = figure();
    f.pixmap = "on";
    f.background = color("white");
     
    for i=2:nbpoints 
        tirage=rand();
        if tirage<1/3 then
            A=[0.5,0;0,0.5];V=[0;0];
        else
            if tirage<2/3 then 
                A=[0.5,0;0,0.5];V=[1/2;0]; 
            else 
                A=[0.5,0;0,0.5];V=[1/4;sqrt(3)/4];
            end
        end    
        P(:,i)=A*P(:,i-1)+V;
        plot(P(1,i),P(2,i),"or")
        drawnow()
    end
    Ingénieur indépendant en conception mécanique et prototypage :
    • conception mécanique 3D (Autodesk Fusion 360)
    • impression 3D (Ultimaker)
    • développement informatique (Python, MATLAB, C)
    • programmation de microcontrôleur (Microchip PIC, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour Dut,
    tout d'abord merci pour cette réponse très rapide.
    J'ai testé votre proposition: cela semble réduire le clignotement qui malheureusement reste pourtant bien présent.
    Je profite de cette réponse pour demander un complément d'info: je n'utilise pas Scilab depuis très longtemps mais je me demande s'il est possible de faire apparaître ce genre de figure progressivement à l'aide par exemple d'un curseur (style ce qu'on peut avoir facilement dans un logiciel tel que GeoGebra), c'est à dire interagir de manière un peu dynamique avec cette figure ?
    Scilab est un excellent programme mais malgré de nombreuses recherches sur internet, j'ai l'impression que cette question d'affichage progressif ou d'interactivité avec la figure ne se résoud pas facilement...
    Merci en tout cas de vous intéresser à mon problème

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance en conception mécanique et prototypage
    Inscrit en
    novembre 2006
    Messages
    20 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance en conception mécanique et prototypage

    Informations forums :
    Inscription : novembre 2006
    Messages : 20 244
    Points : 54 510
    Points
    54 510
    Par défaut
    Citation Envoyé par arkhimedes Voir le message
    J'ai testé votre proposition: cela semble réduire le clignotement qui malheureusement reste pourtant bien présent.
    Voici une autre technique :

    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
    nbpoints=10000;
    P=zeros(2,nbpoints);
     
    f = figure();
    f.pixmap = "on";
    f.background = color("white");
     
    plot(%nan,%nan,"ro");
     
    a = gca();
     
    a.tight_limits = "on";
    a.auto_scale = "off";
    a.data_bounds = [0,0,1,1];
     
    for i=2:10000//nbpoints 
        tirage=rand();
        if tirage<1/3 then
            A=[0.5,0;0,0.5];V=[0;0];
        else
            if tirage<2/3 then 
                A=[0.5,0;0,0.5];V=[1/2;0]; 
            else 
                A=[0.5,0;0,0.5];V=[1/4;sqrt(3)/4];
            end
        end    
        P(:,i)=A*P(:,i-1)+V;
     
        a.children.children.data = P(:,1:i).';
        drawnow()
     
    end
    Par contre, je n'arrive pas à fixer les limites des axes...


    Citation Envoyé par arkhimedes Voir le message
    Je profite de cette réponse pour demander un complément d'info: je n'utilise pas Scilab depuis très longtemps mais je me demande s'il est possible de faire apparaître ce genre de figure progressivement à l'aide par exemple d'un curseur (style ce qu'on peut avoir facilement dans un logiciel tel que GeoGebra), c'est à dire interagir de manière un peu dynamique avec cette figure ?
    Scilab est un excellent programme mais malgré de nombreuses recherches sur internet, j'ai l'impression que cette question d'affichage progressif ou d'interactivité avec la figure ne se résoud pas facilement...
    Le plus simple serait de démarrer une nouvelle discussion dans le forum Scilab en nous donnant plus d'informations sur ce que tu cherches à faire exactement.
    Ingénieur indépendant en conception mécanique et prototypage :
    • conception mécanique 3D (Autodesk Fusion 360)
    • impression 3D (Ultimaker)
    • développement informatique (Python, MATLAB, C)
    • programmation de microcontrôleur (Microchip PIC, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

Discussions similaires

  1. Affichage progressif d'un tableau ?
    Par Manu2.0 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/01/2008, 16h59
  2. Réponses: 1
    Dernier message: 13/12/2007, 07h15
  3. Réponses: 9
    Dernier message: 01/06/2006, 18h10
  4. [Procedure] Affichage progressif des résultats
    Par xenos dans le forum Langage
    Réponses: 2
    Dernier message: 30/12/2005, 22h07
  5. Display un sous menu : affichage progressif des sous rubriq.
    Par sokette dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/12/2005, 16h15

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