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

C# Discussion :

algorithme de streamlines cSharp


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut algorithme de streamlines cSharp
    bonjour

    Je viens à la pêches aux connaissances !

    Je dois dessiner des streamlines a partir d'une matrice X*Y de vecteurs de vent.
    Pour chaque cellule je connais l'angle et l'intensité du vent

    Je sens que je vais un peu ramer pour avoir un résultat visuellement agréable (creer de vraies streamlines et non une suite de bouts de droites mal allignés

    Comme je dois écrire cela en cSharp, je viens voir si par hazard quelqu'un ici aurait de l'expèrience ou des conseils a donner dans le domaine

    Merci de votre aide

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Voir : http://www.codeproject.com/Articles/...f-D-Points-wit
    Quelques mots clés pour une recherche Google : smoothing curve spline beziers cubic interpolation

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut Grafito

    Heureux de te lire (j'étais presque certain que tu te manifesterais)

    Mais le premier soucis que je cherche a résoudre c'est de trouver le "truc" pour creer mes polylines.
    Dans l'image jointe tu peux voir que je pars d'une grille pour laquelle a chaque cellule j'ai les composante de la force du vent en X et Y

    Ca me permet donc a chaque cellule de calculer le vecteur correspondant mais dans le cadre de la cellule

    Le premier challenge a résoudre, c'est de creer des vecteurs qui se prolongent d'une cellule a l'autre de maniere continue

    Je pressent qu'il doit y avoir un algorithme relativement simple pour faire cela

    Mais l'illumination ne m'est pas encore venue

    Je cherche
    Images attachées Images attachées  

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Le problème s'apparente à la conversion de modèles de terrains numérisés en courbes de niveaux.
    Il y a differents algorithmes pour cela.

    Tu trouveras la présentation d'un algorithme avec une implémentation en C# de la routine de contour ici:
    http://paulbourke.net/papers/conrec/


    Oups mauvaise réponse : Dans les cellules, ce ne sont pas des valeurs scalaires, mais des vecteurs.

    Il y a une représentation simple qui consiste à tracer dans chaque rectangle une flêche avec les caractéristiques suivantes :
    • origine : centre du rectangle,
    • direction : celle du vecteur,
    • longueur : 1/2 diagonale,
    • épaisseur ou couleur suivant la norme du vecteur.
      On devrait pouvoir améliorer cette representation en éliminant une partie des flêches dès lors qu'elles sont entourées de flêches "semblables".

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci pour ta collaboration intellectuelle Grafito

    De fait un algo de type Marching Square n'est pas de mise ici puisque on part de vecteurs !

    Ca peut paraitre plus simple mais pas certain quand meme

    Dans l'exemple joint je suis parti de ton idée mais en prenant comme origine soit le point inférieur gauche ou droit selon l'orientation
    Je pense que ta proposition donnera +/- le meme résultat

    A mon avis la solution c'est de "parcourrir" le vecteur cellule par cellule en prenant comme origine chaque fois l'extremité du segment précédant
    C'est pas non plus évident car il faur prendre un nouveau départ a chaque sortie de piste

    Je continue !

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut Graffito

    Je m'adresse evidemment a tout le monde mais je sais Grafito que tu a quelques ressources dans le présent domaine

    J'ai résolu mon probleme de Lines en mettant en place un algorithme de parcours de mes cellule qui prends comme origine l'intesection avec le vecteur de la cellule précédante
    Il y a plusieurs subtilité mais j'obtiens finalement un resultat accecpable

    Sauf Que ! : Je calcule chacun des vecteurs avec une resolution de droite du premier degré Y=aX+b ou A est calculé en fonction des composantes u et v du vent, ces composabntes u et v sont données a chaque cellules

    Je pense que le calcul reel est un peu plus complexe mais je n'ai pas bien réussi a interpreter la littérature sur le sujet je cherche donc la recette de cuisine (ou plutot l'expression concrete de la formule) qui sur base sur les parametres connu
    1- Coordonnées et dimension d'une cellule
    2- Composante uV et vV de vitesse du vent
    3- Données des cellules adjacentes

    Me permet de calculer des points de passage du streamline dans ma cellule

    C'est sans doute plus mathématique que Csharp mais je dois l'écrire en cSharp

    Merci de votre aide

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

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