Partage
  • Partager sur Facebook
  • Partager sur Twitter

MultiThreading

Sujet résolu
    30 novembre 2020 à 11:43:35

    Bonjour j'ai une application où j'affiche des modèles 3D grâce à des fichier ply. J'arrive à faire des rotations etc mais je voudrai faire une méthode pour le faire tourner plusieurs fois (avec un for par exemple) mais quand je le fais l'application s'arrête et charge pendant un moment puis met la figure à la position où elle devrai être à la fin de toute les rotation, sauf que ce que je veux faire c'est faire tourner la figure sur elle même et qu'on la voit cette rotation. Donc j'ai fais quelques recherches et j'ai vu qu'avec le multithread je pourrai peut-être régler ça mais étant encore un apprenti je comprends pas trop comment le faire quelqu'un saurai me l'expliquer assez clairement svp? la méthode pour faire tourner on peut l'appeler rotation() qui fais tourner la figure d'un petit degré.

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2020 à 11:25:55

      Est-ce que la librairie que tu utilises pour manipuler tes modèles support les modifications concurrentes?

      Est-ce que ton IHM a sa propre gestion des threads?

      • Partager sur Facebook
      • Partager sur Twitter
        2 décembre 2020 à 9:06:31

        j'ai pas de librairies exprès pour la 3D j'implémente tout par moi-même (projet universitaire) et je ne vois pas de quoi tu parle "Est-ce que ton IHM a sa propre gestion des threads?"
        • Partager sur Facebook
        • Partager sur Twitter
          2 décembre 2020 à 10:51:17

          Les librairies de fenêtrage(swing, awt, javafx) ont bien souvent leur propre gestion des thread, ça implique de devoir passer par leur système plutot que par les api java classique.

          Si tu veux un affichage fluide, il faut rafraichir l'affichage dans une boucle dédiée continue, et pousser les modifications de l'état des modèles dedans.

          L'affichage se mettra à jour à chaque itération de la boucle, le multithread n'a pas vraiment d'intérêt dans ton cas.

          • Partager sur Facebook
          • Partager sur Twitter
            2 décembre 2020 à 11:27:17

            Je ne sais pas si je me suis bien expliqué mais si un nouveau thread était obligatoire (à force d'essayer je pense avoir compris comment ça marche et j'ai testé et maintenant ça fonctionne) car sans thread mon application plante au moment ou j'appuie sur le bouton qui fait la rotation continue mais sinon j'utilise javafx, il y a une gestion de thread différent? car dans mes classes de thread je mes "extends Thread" je ne fait pas "implements Runnable" mais si il y a une autre façon de faire j'aimerai bien le savoir.

            • Partager sur Facebook
            • Partager sur Twitter
              2 décembre 2020 à 12:21:07

              Oui javafx à sa propre gestion des threads: https://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm

              Cependant ceci n'est valable que si le thread va modifier un composant de javafx, si tu dessines ton objet 3d dans un canvas, c'est indépendant(vu que celui ci reposera sur un contexte opengl ou directx).

              • Partager sur Facebook
              • Partager sur Twitter

              MultiThreading

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown