Rotation d'objets graphiques sur HP-Prime
Posted: 27 Aug 2013, 14:45
Comme déjà illustré dans une actualité précédente, le langage de programmation interprété de la nouvelle calculatrice couleur HP-Prime permet des manipulations d'objets graphiques pixel par pixel!
Nous vous illustrions cela avec des démos de scrolling et de zoom/scaling, qui n'étaient possibles qu'en faisant appel au langage de programmation assembleur (lorsque possible) sur les autres calculatrices graphiques.
Mais à partir du moment où l'on a accès individuellement à chaque pixel, sans même parler des transformations tenant compte de la couleur cela permet déjà d'avoir la totalité des transformations géométriques du plan possibles et imaginables!
Voici par exemple une démo de rotation d'une image de 60x60 pixels, par pas de 5 degrés:
Ça change des démos précédentes - on ne peut envisager ici d'utilisation temps réel vu que c'est très saccadé. La transformation programmée ici est en effet bien plus complexe que les précédentes, effectuant deux calculs trigonométriques pour chaque pixel de l'image.
Malgré la lenteur, il est toutefois déjà très honorable qu'elle soit possible.
Il est peut-être même possible de l'améliorer en utilisant des tables trigonométriques précalculées.
Remarquons toutefois que bizarrement, si je remplace l'image de 60x60 pixels intégrée dans le programme par une misérable image de 70x70 pixels, j'obtiens une erreur de mémoire immédiatement au lancement du programme. Le programme initial avec son image intégrée n'occupant que 38Ko, une telle erreur est totalement anormale pour une mémoire SDRAM intégrée de 32Mo, à moins d'un problème de fuite mémoire ou d'optimisation des instructions interprétées côté HP, ou d'un espace mémoire limité réservé à l'exécution des programmes interprétés.
Source programme:
http://www.omnimaga.org/index.php?topic ... #msg304222
Nous vous illustrions cela avec des démos de scrolling et de zoom/scaling, qui n'étaient possibles qu'en faisant appel au langage de programmation assembleur (lorsque possible) sur les autres calculatrices graphiques.
Mais à partir du moment où l'on a accès individuellement à chaque pixel, sans même parler des transformations tenant compte de la couleur cela permet déjà d'avoir la totalité des transformations géométriques du plan possibles et imaginables!
Voici par exemple une démo de rotation d'une image de 60x60 pixels, par pas de 5 degrés:
Ça change des démos précédentes - on ne peut envisager ici d'utilisation temps réel vu que c'est très saccadé. La transformation programmée ici est en effet bien plus complexe que les précédentes, effectuant deux calculs trigonométriques pour chaque pixel de l'image.
Malgré la lenteur, il est toutefois déjà très honorable qu'elle soit possible.
Il est peut-être même possible de l'améliorer en utilisant des tables trigonométriques précalculées.
Remarquons toutefois que bizarrement, si je remplace l'image de 60x60 pixels intégrée dans le programme par une misérable image de 70x70 pixels, j'obtiens une erreur de mémoire immédiatement au lancement du programme. Le programme initial avec son image intégrée n'occupant que 38Ko, une telle erreur est totalement anormale pour une mémoire SDRAM intégrée de 32Mo, à moins d'un problème de fuite mémoire ou d'optimisation des instructions interprétées côté HP, ou d'un espace mémoire limité réservé à l'exécution des programmes interprétés.
Source programme:
http://www.omnimaga.org/index.php?topic ... #msg304222