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 :

animation 3D sur matlab


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 34
    Par défaut
    Bonjour,

    j ai un soucis sur ce code

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     %-----------------------------------------
    % Animation
    % d'aprés 'Apprendre et maitriser Matlab'
    %-----------------------------------------
    echo on;
    %------------------------
    %  Animation           
    %------------------------
    echo off;
    clear all;
    close all;
    Q=490.916900919889;
    K=1.63;
    w=0.0982543280127309;
    tp=600;
    R=0;
    Y0=[20];
     
     
    t=1:10:600;
    x=1:10:600;
    [T,X]=meshgrid(t,x);
     
      A=(K*sqrt(pi)*Y0+2*Q*sqrt(w*t))/(K*sqrt(pi)*Y0+2*Q*sqrt(w*t)*sqrt(pi));
      B=log((K*sqrt(pi)*Y0+2*Q*sqrt(w*t)/((K*sqrt(pi)*Y0+2*Q*sqrt(w*t)*sqrt(pi))/(-w*t))));   
      z= A'*[(Y0'+(2*Q'*sqrt(w'*t')./K))'*cos(x./B)'-(2*Q)'./K'*B'*1/A'*sin(x./B)'];
    mesh(T,X,Z); % filaire
     
    lim=axis;% vecteur ligne
     
    n=20;
    M=moviein(n);%réserve la mémoire
     
    for i=1:n
       mesh(X,Y,Z); %amortit la surface
       axis(lim);             % les axes ne changent pas
       M(:,i)=getframe;    %capture 1 image
    end
    if 0                  % pb en fin d'exécution si ce code est activé!
     loops=3;         % boucles
     ips=20;           % nbr images/s
     movie(M,loops,ips);
    end
    je souhait faire un film en 3D de la fonction z (temperature) en fonction de t (temps) et x ( profondeur)....
    est ce que quelqu un pourrait m aider

    merci.

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Je ne comprend pas ce que tu veux faire .

    Si tu veux représenter Z = f(t,x) , c'est quoi la 3eme variable pour faire l'animation ?

    Tu ne veux pas dire plutôt : Z=f(x) , et faire une animation pour t=1:tmax ?

    Sinon , si une variable p est scalaire, p' perturbe uniquement le lecteur .

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Tu peux essayer 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    %-----------------------------------------
    % Animation
    % d'aprés 'Apprendre et maitriser Matlab'
    %-----------------------------------------
    echo on;
    %------------------------
    %  Animation           
    %------------------------
    echo off;
    clear all;
    close all;
    Q=490.916900919889;
    K=1.63;
    w=0.0982543280127309;
    tp=600;
    R=0;
    Y0=[20];
     
    t=1:10:600;
    x=1:10:600;
    [T,X]=meshgrid(t,x);
     
    A=(K*sqrt(pi)*Y0+2*Q*sqrt(w*t))/(K*sqrt(pi)*Y0+2*Q*sqrt(w*t)*sqrt(pi));
    B=log((K*sqrt(pi)*Y0+2*Q*sqrt(w*t)/((K*sqrt(pi)*Y0+2*Q*sqrt(w*t)*sqrt(pi))/(-w*t))));   
    z= A'*[(Y0+(2*Q'*sqrt(w*t')./K))*cos(x./B) - (2*Q)./K*B'*1/A'*sin(x./B)];
     
     plot(x,z(1,:),'tag','xzPlot') 
     xlim([min(min(x))-1 max(max(x))+1])
     ylim([min(min(z))-1 max(max(z))+1])
     gui_data=guihandles(gcf);
     guidata(gcf,gui_data);
     
     for i=1:length(t)
          %set(gui_data.xzPlot,'xdata',x);
          set(gui_data.xzPlot,'ydata',z(i,:));
          guidata(gcf,gui_data);
          pause(0.05)
     end

  4. #4
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 34
    Par défaut
    z est la temperature qui varie en fonction du temps t et de la profondeur x.

    je veux donc faire une animation en 3D (axe t , axe x, et axe z) pour visualiser l evolution de la temperature en fonction de la profondeur x a chaque t (temps) donne.

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 34
    Par défaut
    effectivement je viens de comprendre il me manque un axe ...

    ce qu il se passe c est qu on a une evolution de la temperature en fonction du temps suivant deux directions x et y (ici x=y). il faut donc rajouter la direction y..

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Citation Envoyé par cozo22 Voir le message
    z est la temperature qui varie en fonction du temps t et de la profondeur x.

    je veux donc faire une animation en 3D (axe t , axe x, et axe z) pour visualiser l evolution de la temperature en fonction de la profondeur x a chaque t (temps) donne.
    C'est bien ce que je pensais .

    Une animation 3D prend en compte 4 paramétres : 3 pour le graphique 3D et le 4eme pour l'evolution .
    Dans ton cas tu dispose de 3 paramètres et pas 4 .
    Citation Envoyé par cozo22 Voir le message
    visualiser l'evolution de la temperature en fonction de la profondeur x a chaque t
    Autrement dit, tu trace z=ft(x) et tu fai varier t.

    Si, tu ne vois pas ce que je veux dire, je peux rien pour toi .

  7. #7
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 34
    Par défaut
    si si c est bon...

    il fat juste que je retouche mon equation et la j en ai pour un petit moment....

    merci bien

Discussions similaires

  1. animation sur matlab
    Par raanouar dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/04/2009, 10h45
  2. Animation sur matlab
    Par L1011 dans le forum MATLAB
    Réponses: 6
    Dernier message: 11/04/2008, 20h11
  3. animation curseur sur bouton
    Par Chonko dans le forum Flash
    Réponses: 11
    Dernier message: 24/07/2006, 13h27
  4. animation 3D sur fond transparent
    Par addicts dans le forum DirectX
    Réponses: 12
    Dernier message: 24/05/2006, 20h42
  5. Centrage animation flash sur html
    Par guiguikawa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/02/2006, 19h37

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