π
<-
Chat plein-écran
[^]

Manipulation objets graphiques dans les programmes HP-Prime

Manipulation objets graphiques dans les programmes HP-Prime

Message non lude critor » 12 Aoû 2013, 14:47

La plupart des calculatrices graphiques disposent d'objets graphiques rectangulaires utilisables dans leur langage de programmation interprété officiel.
Most graphic calculators have rectangular graphic items usable on their own interpreted programming language.


Ces objets s'appellent Picture sur les TI-z80. La nouvelle TI-84 Plus C Silver Edition couleur de la rentrée 2013 rajoute même un deuxième type d'objet graphique avec quelques spécificités, le type Background.
Those items are called Picture on TI-z80. The new TI-84 Plus C Silver Edition color calculator for back to school 2013 even adds a second specific graphic item, the Background type.


Ces objets disposent toutefois souvent de nombre de limitations dans les langages de programmation officiels:
  • leur nombre est limité
  • ils sont bloqués à la taille de l'écran
  • ils ne peuvent pas être créés sur la calculatrice et nécessitent un programme assembleur ou bien un logiciel spécifique sur l'ordinateur
  • dans le cas où ils peuvent être créés sur la calculatrice, c'est uniquement en stockant l'état courant de l'écran (capture d'écran)
  • ils ne peuvent pas être modifiés mais uniquement écrasés par une nouvelle création d'objet
  • il n'est pas possible d'afficher une partie de ces objets
  • ces objets ne peuvent être affichés qu'en partant du point en haut à gauche de l'écran
However those items often have some limitations with the official programming language:
  • their numbers is limited
  • they are bound by the screen size
  • they can not be created on-calc and thus need an ASM program or a specific software on a computer
  • if they can be created on-calc, the only way is to store the content of the screen (screenshot)
  • they can not be modified but only overwritten through the creation of a new object
  • it is not possible to show a part of those items
  • those items can only be displaying by starting at the top left of the screen


Certes, nombre de programmes assembleur permettent de passer outre. Mais ils utilisent souvent à cette fin leur propre format d'objet graphique qui est donc incompatible.
Of course, there are ASM programs going through these limitations. However, they often use for this purpose their own grapahic item format which is thus incompatible.




Le langage de programmation officiel de la HP-Prime lui nous réserve nombre de surprises de ce côté-là, puisqu'il est possible de créer des objets graphiques avec le contenu et la dimension que l'on veut, de les afficher où l'on veut et même de les transformer comme on veut! :bj:
The official programming language of the HP-Prime supplies us with a lot of surprises about this, as it is possible to create graphic items with the content and dimensions you want, to display them wherever you want, and even to modify them like you want! :bj:


Voici donc en conséquence deux programmes de DJ_O et Gilles59 utilisant le langage officiel pour tester le zoom et le scrolling d'un objet graphique:
Thus here we see two DJ_O and Gilles59's programs using the official programming language to test the scaling and scrolling of a graphic item:





Des performances exceptionnelles pour un langage interprété, qu'il est actuellement impensable d'atteindre sur les autres modèles sans passer au langage assembleur.
It shows exceptional performances for an interpreted language, which are currently impossible to achieve on other calculator models without ASM.


Même si au vu de ces performances on peut émettre quelques doutes quant à la réalisation dans ce langage de jeux rapides redessinant massivement l'écran (jeux d'action avec scrolling par exemple, ou encore jeux 3D FPS), ça n'en reste pas moins honorable. :bj:
Even if those performances may not be enough for games which massively redraw the whole screen (for instance, action games with scrolling, or even 3D FPS games), it remains a honorable performance. :bj:




Source programmes
Source of the programs

http://www.omnimaga.org/index.php?topic ... #msg303466
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Laurae » 12 Aoû 2013, 16:08

Traduit en anglais :p


(quote IRC: qu'il faut que TI arrête de "brider" les Nspire et de nous laisser faire ce qu'on veut avec )
:p

Quoiqu'on est qu'une minorité qui veut changer la monde :p
Avatar de l’utilisateur
LauraeAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 78.8%
 
Messages: 1685
Images: 22
Inscription: 25 Juin 2010, 00:00
Localisation: France, La Défense
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Professeur, Etudiant, Formateur

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude nikitouzz » 12 Aoû 2013, 17:22

on peux faire des rotozoom ? :O
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude critor » 12 Aoû 2013, 17:28

Pas d'instruction de rotation à ma connaissance.

Mais à partir du moment où l'on peut modifier le contenu des objets-image, oui tu peux programmer une rotation des données.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude DoOmnimaga » 12 Aoû 2013, 18:01

Tu as oublié d'enlever les commandes WAIT(0.02) dans les 2 programmes D: (je les avais mis car les 2 programmes tournaient trop vite dans l'émulateur). Pour la vitesse véritable, il faudrait refaire le test sans ces commandes :P

(Aussi Critor tu devrais vérifier tes messages privés car j'avais fait une demande de suppression d'un programme en téléchargement l'autre jour (la copie du Tunnel HP Prime qui n'avait pas été uploadée par moi), qui n'a finallement jamais eu de réponse)
Dream of Omnimaga
ImageImageImageImage
Avatar de l’utilisateur
DoOmnimagaPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 7.3%
 
Messages: 681
Images: 25
Inscription: 21 Fév 2012, 12:04
Localisation: Quebec, Canada
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 11eme annee scolaire termine
YouTube: DJOmnimaga
Twitter/X: DJOmnimaga
Facebook: djomnimaga

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Gilles59 » 12 Aoû 2013, 18:06

Plus rapide, sans déformation et sans aucun clignotement ;)

Code: Tout sélectionner
DIMGROB_P(G1,80,22);   
DIMGROB_P(G2,320,240);
TEXTOUT_P("PRIME...",G1,0,0,7,RGB(125,0,0));   

FOR Z FROM 1 TO 200 DO
RECT_P(G2);  // Efface G2
BLIT_P(G2,0,0,Z*2,Z,G1); //Zoom G1 dans G2
BLIT_P(G0,G2); // Copie G2 dans G0 (écran)
END;


A tester sur le proto :D

edit by Levak: Ya un bouton Edit en haut à droite de chaque post, merci :) ... C'est noté merci !!
Avatar de l’utilisateur
Gilles59
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 93.3%
 
Messages: 12
Inscription: 09 Aoû 2013, 09:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur - y'a longtemps lol

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude critor » 12 Aoû 2013, 18:40

Topic nettoyé. Pour le hors-sujet et les demandes personnelles, il y a le chat ainsi que tout le reste du forum.

Merci.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude critor » 12 Aoû 2013, 18:44

Je referai la vidéo sans les wait.
Je les ai laissés car j'estimais le temps d'attente raisonnable (centième de seconde) et représentatif d'un jeu qui doit calculer des choses entre deux affichages.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude Gilles59 » 12 Aoû 2013, 20:12

Pour le scrolling "plein écran" à s pixel près (hor. et vert.) :

Code: Tout sélectionner
EXPORT Scroll(s)

BEGIN
LOCAL x:=100,y:=100;

DIMGROB_P(G1,640,480);   

FOR N:=1 TO 200 DO
RECT_P(G1,IP(RANDOM(640)),IP(RANDOM(480)),IP(RANDOM(640)),IP(RANDOM(480)),IP(RANDOM(255^3)),IP(RANDOM(255^3)));
END;

REPEAT
x:=MAX(MIN(x+ISKEYDOWN(8)-ISKEYDOWN(7),320),0);
y:=MAX(MIN(y+ISKEYDOWN(12)-ISKEYDOWN(2),240),0);
BLIT_P(G0,0,0,G1,x,y,320+x,240+y);
UNTIL ISKEYDOWN(4);

END;


Scroll(n) n corespond au nombres de pixel pour le srolling
ex
Scroll(1)
Scroll(5)

Utiliser les fleches pour bouger... Esc pour arréter
Beaucoup trop rapide sur l'émulateur :D A voir sur HDW

EDIT : correction des codes des touches

Pas d'option pour intégrer directement des videos Dailymotion ? Lien :

http://www.dailymotion.com/video/x130nft_scroll-prime_tech
Dernière édition par Gilles59 le 13 Aoû 2013, 06:48, édité 4 fois.
Avatar de l’utilisateur
Gilles59
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 93.3%
 
Messages: 12
Inscription: 09 Aoû 2013, 09:32
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur - y'a longtemps lol

Re: Manipulation objets graphiques dans les programmes HP-Pr

Message non lude critor » 12 Aoû 2013, 21:04

Vidéos refaites et remplacées dans la news.

Supprimé les commandes wait (merci DJ_O) et utilisé le double buffering pour le zoom (merci Gilles59).

Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Suivante

Retourner vers News HP

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 21 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
955 utilisateurs:
>942 invités
>9 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)