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

Algorithmes et structures de données Discussion :

Convertir un mesh 2d en edge


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Convertir un mesh 2d en edge
    Bonjour,

    J'ai trouver un site qui convertit un mesh 2d en edge et ils racontent n'importe quoi !!
    https://xinyustudio.wordpress.com/2013/09/06/get-the-boundary-of-a-mesh-the-algorithm-and-c-implementation/
    Ca ne marche pas ca doit être reserver pour une mesh particulier.

    Je vous joint le source en c# dotnet.

    J'ai penser à joindre le fichier texte dbgedge.txt

    Je veux d'abord le convertir sans le Z puis aprés avec le Z.

    Merci.

    contenue du fichier texte :

    272.354034423828,80.1541137695313,8.64039999403954
    275.130767822266,95.3391647338867,8.64039999403954
    285.192199707031,90.6474456787109,8.64039999403954
    272.354034423828,80.1541137695313,8.64039999403954
    267.303070068359,87.511474609375,8.64039999403954
    275.130767822266,95.3391647338867,8.64039999403954
    280.651977539063,76.2847213745117,8.64039999403954
    285.192199707031,90.6474456787109,8.64039999403954
    290.762512207031,80.9993515014648,8.64039999403954
    280.651977539063,76.2847213745117,8.64039999403954
    272.354034423828,80.1541137695313,8.64039999403954
    285.192199707031,90.6474456787109,8.64039999403954

  2. #2
    Membre régulier
    Il faut utiliser comme ceux-ci :
    Code C# :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    var cid = MeshHelper.GetEdges(ci.ToArray());
                cid = cid.SortEdges();
                cid = cid.FindBoundary();


    Code C# :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     internal static List<Edge> GetEdges(int[] aIndices)
            {
                List<Edge> result = new List<Edge>();
                for (int i = 0; i < aIndices.Length; i += 3)
                {
                    int v1 = aIndices[i];
                    int v2 = aIndices[i + 1];
                    int v3 = aIndices[i + 2];
                    result.Add(new Edge(v1, v2, i));
                    result.Add(new Edge(v2, v3, i));
                    result.Add(new Edge(v3, v1, i));
                }
                return result;
            }


    'ci' étant une liste d'entier qui est l'index de vertice.

    Ca marche .

###raw>template_hook.ano_emploi###