tracé de courbes de niveau avec (x,y,z) indépendants

E

ejung

Guest
Bonjour,

Je souhaite tracer les courbes de niveau d'un profil d'aile d'avion - ou d'un safran de bateau ....

Pour ça je dispose :
- des dimensions de l'aile - en fait c'est un trapèze dans le plan (x,y)
- pour chaque section verticale x, d'une série de points qui décrivent le profil dans le plan (y,z)

Comme ce sont des profils calculés selon des abaques,
- je ne connais pas la fonction z = f(x,y),
- les cotes y ne sont pas régulièrement espacés, ni même identiques d'une section à l'autre, donc impossible d'avoir une matrice classique avec x / y décrivant un quadrillage.

Donc, je dispose seulement d'un jeu de données (x,y,z), et je voudrais tracer les courbes de niveau selon z, sur l'ensemble de la surface. Pas trop facile d'être assez clair ... Je joins un schéma avec les profils dans 3 sections, qui devrait être plus clair que mes explications.

Bien sur, j'ai essayé la fonction graphique "Surface", mais elle s'applique à une matrice z = x / y que je n'ai pas ...

Sauriez-vous m'aider ?
D'avance merci infiniment !

Manu
 

Pièces jointes

  • Forme nouveau safran avec profils .jpg
    Forme nouveau safran avec profils .jpg
    22.4 KB · Affichages: 500

pierrexld

XLDnaute Nouveau
Re : tracé de courbes de niveau avec (x,y,z) indépendants

Bonjour,

Aurais-tu un exemple de jeu de données qui nous permettrait de faire des tests?
Si j'ai bien compris le problème, il doit être possible de reconstituer une matrice "pixelisée" (par tranches de valeurs, avec extrapolation linéaire entre les 2), mais c'est difficile de le dire dans l'absolu.

@+
 
E

ejung

Guest
Re : tracé de courbes de niveau avec (x,y,z) indépendants

Merci pierrexld et le Pierre pour vos réponse,

Le "faux 3D" présenté dans le post ne convient pas. Je n'ai pas tellement besoin du 3D, plutôt de courbes de niveau comme dans une carte topographique.

Pour pierrexld, l'interpolation serait une idée possible, que je ne sais pas réaliser de manière automatique. Je joins un jeu de données avec 3 sections (0, 50 cm, 1m) mais je saurais faire autant de sections que nécessaire (par exemple tous les 5 cm).

L'idéal serait d'avoir une courbe de niveau en z tous les 0,1 cm.

Merci de votre aide !
Et bon dimanche.
 

Pièces jointes

  • sections test.xls
    33.5 KB · Affichages: 337

Le Pierre

XLDnaute Junior
Re : tracé de courbes de niveau avec (x,y,z) indépendants

Bonjour

Tes données permettent de tracer une courbe mais pour un profil incomplet de l'aile.
Qu'en penses-tu ?
Est-ce que l'on poursuit sur cette piste ?

à plus
 

Pièces jointes

  • sections test profil.zip
    29.3 KB · Affichages: 196
E

ejung

Guest
Re : tracé de courbes de niveau avec (x,y,z) indépendants

Bonjour,
Oui, je sais bien tracer toutes les sections,
Maïs je cherche à avoir les courbes de niveau, peut-être par reconstitution d'une "grille" (x,y) par interpolation, comme le suggérait pierrexld ?
Bien à vous,
Manu
 

mécano41

XLDnaute Accro
Re : tracé de courbes de niveau avec (x,y,z) indépendants

Bonjour,

Voici peut-être un début de solution.

Comme tu disposes de beaucoup de points pour définir chaque courbe de section, tu peux peut-être te satisfaire d'une interpolation linéaire entre deux points pour trouver l'abscisse du point de la courbe correspondant à l'ordonnée définie par le niveau du plan dans lequel tu souhaites avoir la courbe de niveau.

Si par exemple, le plan coupe la courbe de section au point N, ce point est à l'ordonnée Zn et son abcisse Yn est donnée (sauf erreur :( ) par :

Yn = Y1 + (Zn-Z1)(Y2-Y1)/(Z2-Z1) avec X1,Y1 et Z1 qui sont les coordonnées du point précédant N et X2,Y2 et Z2 qui sont les coordonnées du point suivant N

On applique cette interpolation uniquement si les points 1 et 2 ci-dessus répondent à la condition : l'un est avant N et l'autre est après N (voir formule de la colonne D).

Je l'ai fait pour les 3 sections que tu as données mais il faudrait en mettre plus et plus serrés, puis étirer la formule vers le bas.

On fixe un niveau dans la cellule jaune (ici j'ai pris 1,7 pour que le plan coupe les trois courbes ; le résultat est bien deux fois trois points. Il ne faut pas tenir compte des points situés sur l'axe Z du graphique ; il faudrait pouvoir relier les points mais je n'ai pas trouvé de solution* ...enfin, cela te donne déjà une idée....

Cordialement

* En fait, il faudrait regrouper les valeurs non nulles dans un tableau qui servirait au tracé
 

Pièces jointes

  • Copie de sections test profil1.zip
    27 KB · Affichages: 170
Dernière édition:
E

ejung

Guest
Re : tracé de courbes de niveau avec (x,y,z) indépendants

Bonjour et un grand merci mécano21,

Ca me semble être un bon début, très encourageant :
- J'ai donc les coordonnées Yn(x) d'une "tranche" à l'altitude Zn.
- Je peux donc dupliquer cette formule pour tous les Yi qui m'intéressent, soit : Yi = 0, Ymax step 0,1
- Ca va me faire un tableau très vide ... et je ne pourrai pas utiliser la fonction "surface" qui me donnerait les courbes de niveau.

La solution consisterait alors :
- A créer les profils y = f(xi) pour toutes les sections Xi = 0,100 step 1 cm : facile)
- A remplir une matrice 101 x 486 qui formera le quadrillage dans le plan horizontal :
  • X varie de 0 à 100 par pas de 1 cm (ça c'est mes sections)
  • Y varie de 0 à 485 par pas de 0,1 cm
- et à calculer par interpolation l'altitude zij = z(xi, yj)
  • pour Xi, c'est la cote de la section : facile
  • pour Yj : c'est une interpolation comme tu proposes, en allant chercher les 2 points voisins dans le profil de la section Xi.

Je vois bien ce qu'il faut faire :), mais là je butte sur une question essentielle : comment faire ? :mad:

Si vous pouvez m'aider ?
 
E

ejung

Guest
Re : tracé de courbes de niveau avec (x,y,z) indépendants

Bon, j'ai cherché et trouvé.
J'ai pu créer une matrice (x,y), et calculer par interpolation sur les sections les altitudes z correspondantes.
Le graphique "surface" et "lignes de niveaux" est toutefois très désespérant : il y a des écarts d'interpolation (graphique cette fois) qui rendent le document peu utilisable. Malheureusement ça ne passe pas en ZIP (691 ko). Je mets 1 capture d'écran sur une portion.
J'ai vérifié, ce n'est pas lié aux abaques des profils : si je mets une fonction algébrique de x et y j'ai le même phénomène. C'est plutôt lié au pas d'échelle sur z, mais si je mets plus petit mon PC plante ... J'ouvre un nouveau post pour le lissage des courbes.
Encore un grand merci à tous pour vos conseils.

Bien à vous
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    50.1 KB · Affichages: 514
  • Capture.jpg
    Capture.jpg
    50.1 KB · Affichages: 549
  • Capture.jpg
    Capture.jpg
    50.1 KB · Affichages: 568

mécano41

XLDnaute Accro
Re : tracé de courbes de niveau avec (x,y,z) indépendants

Bonjour,

Voici un exemple (toujours pour un niveau seulement), ou l'établissement du tableau des valeurs pour le graphique est traité en VBA. A chaque changement du niveau dans la cellule jaune, les valeurs sont recalculées et le graphique mis à jour.

J'ai mis des points intermédiaires "bidon" pour montrer qu'avec suffisamment de points on peut avoir quelque chose d'assez continu (ici j'ai choisi un niveau qui correspond à une courbe complète). On peut demander un lissage de la courbe, ce qui améliore l'aspect, mais lorsque l'on ne représente que partiellement la courbe (mettre par ex. un niveau 1,2 ou 2,3) le lissage n'est évidemment plus représentatif. Il faudrait séparer la courbe en 2 parties et les lisser séparément.

Il faudrait ensuite faire une routine VBA pour traiter successivement plusieurs niveaux mais :

- tu pourras mettre une couleur par courbe mais pas faire de "remplissage" en une couleur par niveau

- avec 100 pas en X et 4850 pas en Y cela fait 485000 lignes avec la disposition choisie pour les données de base ...

- je ne sais pas quel sera le temps de calcul/traçage, mais cela n'a peut-être pas d'importance

Enfin, voilà ; c'est juste un début d'exemple. Quelqu'un aura peut-être une autre idée...

Cordialement

Le fichier est ici (trop lourd même en zip)

Cijoint.fr - Service gratuit de dépôt de fichiers
 
E

ejung

Guest
[Résolu] tracé de courbes de niveau avec (x,y,z) indépendants

Merci pour tout,
J'en reste à ma version "bricolée", qui va me permettre de me guider pour le "shape".
Au delà, c'est un raffinement qui ne s'impose pas ...
A bientôt !
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise