π
<-
Chat plein-écran
[^]

Manipulation objets graphiques dans les programmes HP-Prime

Manipulation objets graphiques dans les programmes HP-Prime

Unread postby critor » 12 Aug 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.6%
 
Posts: 41501
Images: 14719
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby Laurae » 12 Aug 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
User avatar
LauraeAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 78.8%
 
Posts: 1685
Images: 22
Joined: 25 Jun 2010, 00:00
Location: France, La Défense
Gender: Male
Calculator(s):
MyCalcs profile
Class: Professeur, Etudiant, Formateur

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby nikitouzz » 12 Aug 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
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby critor » 12 Aug 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.6%
 
Posts: 41501
Images: 14719
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby DoOmnimaga » 12 Aug 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)
Image Image Image Now active at https://discord.gg/cuZcfcF (CodeWalrus server)
User avatar
DoOmnimagaPremium
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 8.1%
 
Posts: 683
Images: 25
Joined: 21 Feb 2012, 12:04
Location: Quebec, Canada
Gender: Male
Calculator(s):
MyCalcs profile
Class: 11eme annee scolaire termine
YouTube: DJOmnimaga
Twitter: DJOmnimaga
Facebook: djomnimaga

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby Gilles59 » 12 Aug 2013, 18:06

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

Code: Select all
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 !!
User avatar
Gilles59
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 93.3%
 
Posts: 12
Joined: 09 Aug 2013, 09:32
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ingénieur - y'a longtemps lol

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby critor » 12 Aug 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.6%
 
Posts: 41501
Images: 14719
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby critor » 12 Aug 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.6%
 
Posts: 41501
Images: 14719
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby Gilles59 » 12 Aug 2013, 20:12

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

Code: Select all
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
Last edited by Gilles59 on 13 Aug 2013, 06:48, edited 4 times in total.
User avatar
Gilles59
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 93.3%
 
Posts: 12
Joined: 09 Aug 2013, 09:32
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ingénieur - y'a longtemps lol

Re: Manipulation objets graphiques dans les programmes HP-Pr

Unread postby critor » 12 Aug 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 42.6%
 
Posts: 41501
Images: 14719
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Next

Return to News HP

Who is online

Users browsing this forum: No registered users and 78 guests

-
Search
-
Social TI-Planet
-
Featured topics
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
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1706 utilisateurs:
>1695 invités
>5 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)