J’ai besoin d’aide

3 sujets de 1 à 3 (sur un total de 3)

  • Anonyme

      #9179

      Bonjour,

      Oui, j’ai besoin d’un petit coup de main pour les hollywoodiens qui maîtrise les tableaux.

      J’explique,

      J’ai un tableau avec les coordonnées Zmoy,X,Y,Z,D

      Le voici:

      PT[0 à 95]={PZM=ZM,PX=X,PY=Y,PD=D}

      Se tableau m’a l’air Ok, mais comment fait-on pour trier se tableau en fonction de PZM, je veux que la valeur de PX,PY et PD suive la valeur trié de PZM

      ex:

      PT[0]={9,5,3,7,9}

      PT[1]={8,4,4,8,2}

      PT[3]={5,8,6,8,2}

      Une fois trié, je veux que mon tableau soit comme sa:

      PT[0]={5,8,6,8,2}

      PT[1]={8,4,4,8,2}

      PT[2]={9,5,3,7,9}

      Quelqu’un sait? c’est pour trié les coordonnées afin d’afficher en premier le triangle le plus éloigné. Comme sa, plus d’erreur d’affichage lors d’une rotation.

      Si j’arrive à faire sa, j’optimise le truc et hop, vous avez un code hollywood pour afficher des objet 3D surface pleine SANS ERREUR d’affichage. Car à la fin, je donne toujours tous ;-)

      Merci du coup de main

      Respect

      thellier

        #140916

        Hello

        Ce que tu cherche s’appelle le « tri fusion »

        Y a plein d’exemple de code sur Internet à toi de choisir celui qui te parais le plus clair

        L’idée c’est on trie d’abord les cellules du tableau par 2 cellules à la fois (trivial) puis on regroupe par 4 (cad on entrelace en comparant 2 cellules de chaque paquet ) …etc jusqu’à la taille du tableau

        genre un tableau à l’envers qu’on veut mettre par ordre croissant

        7 6 5 4 3 2 1 0

        Etape1 (blocs par 2)


        on trie 7 6

        6 7

        idem les autres

        4 5

        2 3

        0 1

        Etape2 (blocs par 4)


        on fusionne

        6 7 et 4 5

        si 6< 4 alors 6 4 sinon 4 6 etc... si 7< 5 alors 7 5 sinon 5 7 etc... –> 4 5 6 7

        on fusionne

        2 3 et 0 1

        –> 1 2 3 4

        Etape3 (blocs par 8)


        on fusionne

        4 5 6 7 et 0 1 2 3

        –> 0 1 2 3 4 5 6 7

        Anonyme

          #140917

          Merci, j’essai.

          Il faudra surement que je passe par les metatables… Recherche ardu, mais je finirais bien par trouver

          EDIT: J’AI TROUVE…

          Encore merci Mr thellier et Alex sur ANG de votre coup de main ;-)

          Respect

        3 sujets de 1 à 3 (sur un total de 3)

        • Vous devez être connecté pour répondre à ce sujet.

        Forums AmigaOS, MorphOS et AROS Développement J’ai besoin d’aide

        Amiga Impact