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

LabVIEW Discussion :

Représentation 3D d'un cylindre


Sujet :

LabVIEW

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut Représentation 3D d'un cylindre
    Bonjour,
    Je veux représenter un cylindre, pour cette raison j'ai utiliser le control CWGraph3D(de Measurement Studio) et le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int i, j;
    for (j = 20; j < 40; j++)
    {
        for (i = 0; i <= 180; i++)
        {
                xData[j-20,i] = 3 * Math::Cos(i * Math::PI/180);
                yData[j-20,i] = 3 * Math::Sin(i * Math::PI/180);
    			zData[j-20,i] = j;
        }
    }
    axCWGraph3D->Plot3DParametricSurface(xData,yData,zData);
    ainsi j'obtient un cylindre mais aussi une cône à l'intéreur du cylindre et a comme sommet l'origine du repère.

    [IMG][/IMG]
    Mon problème est que je ne veux pas que cette cône apparaît
    Merci d'avance

  2. #2
    Membre averti Avatar de VictorNet
    Profil pro
    Inscrit en
    Février 2008
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 275
    Points : 382
    Points
    382
    Par défaut
    ça serait pas une histoire d'interpolation?
    "L'imagination est plus importante que le savoir." -Albert Einstein-

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par VictorNet Voir le message
    ça serait pas une histoire d'interpolation?
    Ce n'est pas clair,
    ce n'est pas moi qui fait l'interpolation, c'es la fonction Plot3DParametricSurface

    Merci d'avance

  4. #4
    Membre éprouvé Avatar de BrunoIRM
    Homme Profil pro
    Ingénieur Instrumentation
    Inscrit en
    Juillet 2009
    Messages
    785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Instrumentation

    Informations forums :
    Inscription : Juillet 2009
    Messages : 785
    Points : 1 160
    Points
    1 160
    Par défaut
    Hello,

    Si on regarde ton équation, ton cylindre devrait rester entre 20 et 40 en Z.
    Or, la pointe du cône passe par un point d'altitude 0
    Il me semble donc que tu as un point singulier qui vient mettre le souk et que l'algorithme de Plot3DParametricSurface interprète mal.

    Concernant ta boucle angulaire : pourquoi la fais tu aller jusqu'à 180 inclus ?

    Au vu de ton équation, un "<" et non pas un "<=" devraient suffire.

    sinon, tu as peut-être un mauvais dimensionnement de tes tableaux xData, yData, zData.

    A+

    B.

    PS : Ce post est un peu limite pour un forum de programmation LabVIEW .....

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut
    Bonjour,
    Merci pour l'explication
    En fait j'ai compris la cause mais j'ai pas trouvé de solution
    Je ne trouve pas comment ignorer ce point à l'origine du repère.
    Voici la déclaration de mes matrices
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    array<double,2> ^zData = gcnew array<double,2>(200,200);
    array<double,2> ^yData = gcnew array<double,2>(200,200);
    array<double,2> ^xData = gcnew array<double,2>(200,200);
    je sais pas où est l'erreur
    Merci

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Avril 2010
    Messages : 210
    Points : 338
    Points
    338
    Par défaut
    Salut,

    Je rejoins ce que dit BrunoIRM

    D'après ce que je vois de ton code, ca doit être le dimensionnement de tes tableaux qui posent problème. Ils sont trop grand !!
    En effet, tu n'écrit les coordonnées que de 3620 points (=181*20) dans tes tableaux alors qu'ils en comportent 40000 (200*200), ce qui fait que tu as énormément de points qui sont aux coordonnées (0,0,0). Vu que tu envois tes tableaux entier dans la fonction, elles doit tracer tes 40000 points.

    Sinon, comme l'a dit BrunoIRM, tu trace un point de trop dans la seconde boucle FOR ( de 0 à 180 inclus, ca fait 181 points !!).

    Après je peux me tromper car je suis un peu rouillé avec les langage en dur. D'ailleurs, tu a essayer de les allouer dynamiquement ? Je sais pas si c'est possible mais au moins tu serais tranquille au niveau de la taille.

    Bon courage

    Losaque

    EDIT : si c'est bien ca, t'a de la chance que tes matrices soit initialisées à (0,0,0) partout, parce que sinon ca t'aurais donner n'importe quoi

  7. #7
    Membre éprouvé Avatar de BrunoIRM
    Homme Profil pro
    Ingénieur Instrumentation
    Inscrit en
    Juillet 2009
    Messages
    785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Instrumentation

    Informations forums :
    Inscription : Juillet 2009
    Messages : 785
    Points : 1 160
    Points
    1 160
    Par défaut
    Hello,

    Analyse pertinente de losaque à tout point de vue...

    Bon courage

    B.

  8. #8
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 382
    Points : 174
    Points
    174
    Par défaut
    Bonjour,
    Merci BrunoIRM,
    Merci losaque,
    problème résolu; il faut déclarer le tableau avec le nbre exact de points
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Représentation intervallaire des listes arborescentes
    Par PMAR dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/11/2004, 09h35
  2. [Normes] représentation des pourcentages
    Par Bowen dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 19/10/2004, 14h42
  3. Couleur de cylindre
    Par phneutre dans le forum OpenGL
    Réponses: 7
    Dernier message: 08/07/2004, 15h24
  4. Réponses: 1
    Dernier message: 17/06/2004, 17h44
  5. [ASM370] Décimaux : représentation compacte et etendue
    Par grand's dans le forum Autres architectures
    Réponses: 6
    Dernier message: 25/01/2004, 17h47

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