Tout 82
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Connexion

Récupérer mon mot de passe

Chatbox externe


Derniers sujets
» [JEU] Mon voisin du dessous
[Graphismes] Dessinez avec une base de données EmptyDim 16 Oct 2022 - 21:11 par Wistaro

» Bonne année 2018!
[Graphismes] Dessinez avec une base de données EmptyVen 2 Nov 2018 - 19:42 par Ti64CLi++

» Lancement du TI-Concours 2017 !
[Graphismes] Dessinez avec une base de données EmptySam 20 Mai 2017 - 0:27 par Paulo1026

» Chaînes Youtube des membres
[Graphismes] Dessinez avec une base de données EmptyVen 19 Mai 2017 - 22:41 par Wistaro

» cacul du taux d'intêret
[Graphismes] Dessinez avec une base de données EmptyVen 24 Mar 2017 - 21:50 par m@thieu41

» [Projet] Un mario by tout82
[Graphismes] Dessinez avec une base de données EmptyDim 29 Jan 2017 - 14:09 par Wistaro

» Cherche documentation assembleur TI82stat
[Graphismes] Dessinez avec une base de données EmptyMer 25 Jan 2017 - 12:29 par Ti64CLi++

» Probleme Ti-82 Stats fr
[Graphismes] Dessinez avec une base de données EmptyJeu 12 Jan 2017 - 13:56 par Ti64CLi++

» ROM 82 stats.fr
[Graphismes] Dessinez avec une base de données EmptyJeu 15 Déc 2016 - 10:24 par Ti64CLi++

Partenaires
TI-Planet Espace-TI : Forum

Faire un don à Tout-82...
Où va cet argent ?
Membres donateurs:- Persalteas (10€)
- Wistaro (5€)
- jo2geek (22€)

Les posteurs les plus actifs du mois
Aucun utilisateur

Le Deal du moment : -17%
Continental Edison TV QLED 55” (139 cm) UHD 4K ...
Voir le deal
299.99 €

[Graphismes] Dessinez avec une base de données

5 participants

Aller en bas

[Graphismes] Dessinez avec une base de données Empty [Graphismes] Dessinez avec une base de données

Message par persalteas Sam 26 Oct 2013 - 10:39

Cas général

Prenons, au hasard, le code d'une animation Mario en développement:

Code:
Ligne(17,40,28,40
Ligne(15,39,16,39
Ligne(29,39,30,39
Ligne(13,38,14,38
Ligne(31,38,33,36
Ligne(8,33,12,37
Ligne(34,35,34,34
Ligne(35,33,35,30
Ligne(7,32,7,31
Ligne(6,30,6,29
Ligne(36,29,38,27
Ligne(5,28,5,26
Ligne(27,26,38,26
Ligne(28,25,31,25
Ligne(30,24,31,24
Ligne(4,25,4,24
Ligne(3,23,3,20
Ligne(31,23,31,20
Pt-On(2,19
Ligne(32,19,32,18
Ligne(1,18,1,14
Ligne(2,13,3,12
Ligne(33,17,33,13
Ligne(4,11,7,11
Ligne(7,10,8,9
Ligne(8,8,11,5
Ligne(34,15,34,8
Ligne(33,7,32,6
Ligne(33,8,31,6
Ligne(12,5,13,4
Ligne(14,4,15,3
Ligne(16,3,17,2
Ligne(18,2,24,2
Ligne(31,6,28,6
Ligne(29,5,27,5
Ligne(27,4,25,4
Ligne(25,3,21,3
Ligne(19,4,21,4
Ligne(17,6,18,5
Ligne(17,10,17,7
Ligne(27,7,29,7
Ligne(18,10,19,9
Ligne(18,11,21,8
Ligne(21,9,22,8
Ligne(23,8,28,8
Ligne(28,9,30,11
Ligne(28,10,30,12
Ligne(31,11,32,12
Ligne(30,13,30,15
Ligne(29,16,27,18
Ligne(27,19,25,21
Ligne(27,18,24,18
Ligne(25,19,25,21
Ligne(26,22,28,23
Ligne(19,18,19,19
Pt-On(18,17
Ligne(17,17,17,20
Ligne(18,20,17,21
Ligne(17,21,19,23
Pt-On(20,23
Ligne(9,11,11,11
Ligne(8,12,9,12
Ligne(11,12,12,12
Ligne(8,13,8,16
Ligne(12,13,13,13
Ligne(13,14,13,16
Ligne(12,16,12,17
Ligne(11,17,11,19
Ligne(7,17,7,19
Ligne(6,19,10,19
Ligne(4,20,5,20
Ligne(5,14,5,16
Ligne(4,16,4,17
Pt-On(3,17
Ligne(8,20,10,20
Ligne(9,21,10,21
Ligne(11,22,12,22
Ligne(13,23,15,23
Ligne(15,22,17,22
Ligne(16,24,17,24
Ligne(18,25,20,25
Ligne(21,25,26,26
Pt-On(21,24
Ligne(12,26,15,29
Ligne(16,29,17,30
Ligne(18,30,19,31
Ligne(20,31,21,31
Ligne(22,32,32,32
Ligne(33,31,34,31
Ligne(22,31,22,34
Ligne(23,35,23,36
Ligne(24,37,27,37
Ligne(28,36,30,34
Pt-On(30,33
Pt-On(26,36
Ligne(25,33,27,33
Pt-On(25,34
Pt-On(27,34
[Graphismes] Dessinez avec une base de données Visage10

C'est beau, hein ?
Certes, mais un peu lourd.

Il existe un moyen d'économiser un octet par ligne. (un peu moins)
La base de données.

Comment ça marche ? Voici le principe

  • Créer une base de données qui contient tous les coordonées de points nécessaires au dessin des lignes
  • Créer un algorithme qui va extraire de cette base de données les coordonées nécessaires au traçage d'une ligne, puis passer à la suivante


Alors, étape 1, créer la base de données.
Je vais donc rentrer tout ça dans une liste.

Quelques remarques tout de même:

  • Vous ne pouvez utiliser qu'un seul type d'insctruction à la fois (ici j'ai viré les Pt-On )
  • ATTENTION: plus votre liste est grande, plus ça va être lent. Ne pas hésiter à la couper en plusieurs petites listes et à recommencer plusieurs fois l'algorithme de traçage.
  • Au maximum, vous pouvez stocker 249 lignes dans une liste (250*4>999). Mais je vous le déconseille, c'est très lent et ça demande beaucoup de RAM libre.
  • Vous n'êtes pas obligés d'utiliser L1, L2, ou une liste perso. Ans, (ou Rép en français), c'est sympa aussi.



Dans cet exemple, je vais prendre une liste hyper-grosse pour que vous compreniez bien le principe. Mais je vous le déconseille IRL.

Code:
:{17,40,28,40,15,39,16,39,29,39,30,39,13,38,14,38,31,38,33,36,8,33,12,37,34,35,34,34,35,33,35,30,7,32,7,31,6,30,6,29,36,29,38,27,5,28,5,26,27,26,38,26,28,25,31,25,30,24,31,24,4,25,4,24,3,23,3,20,31,23,31,20,32,19,32,18,1,18,1,14,2,13,3,12,33,17,33,13,4,11,7,11,7,10,8,9,8,8,11,5,34,15,34,8,33,7,32,6,33,8,31,6,12,5,13,4,14,4,15,3,16,3,17,2,18,2,24,2,31,6,28,6,29,5,27,5,27,4,25,4,25,3,21,3,19,4,21,4,17,6,18,5,17,10,17,7,27,7,29,7,18,10,19,9,18,11,21,8,21,9,22,8,23,8,28,8,28,9,30,11,28,10,30,12,31,11,32,12,30,13,30,15,29,16,27,18,27,19,25,21,27,18,24,18,25,19,25,21,26,22,28,23,19,18,19,19,17,17,17,20,18,20,17,21,17,21,19,23,9,11,11,11,8,12,9,12,11,12,12,12,8,13,8,16,12,13,13,13,13,14,13,16,12,16,12,17,11,17,11,19,7,17,7,19,6,19,10,19,4,20,5,20,5,14,5,16,4,16,4,17,8,20,10,20,9,21,10,21,11,22,12,22,13,23,15,23,15,22,17,22,16,24,17,24,18,25,20,25,21,25,26,26,12,26,15,29,16,29,17,30,18,30,19,31,20,31,21,31,22,32,32,32,33,31,34,31,22,31,22,34,23,35,23,36,24,37,27,37,28,36,30,34,25,33,27,33
Techniquement, la dimension de cette liste est un multiple de 4.

Donc ensuite, je crée un algo qui chope les bonnes valeurs, et qui trace...
Code:

:{17,40,28,40,15,39,16,39,29,39,30,39,13,38,14,38,31,38,33,36,8,33,12,37,34,35,34,34,35,33,35,30,7,32,7,31,6,30,6,29,36,29,38,27,5,28,5,26,27,26,38,26,28,25,31,25,30,24,31,24,4,25,4,24,3,23,3,20,31,23,31,20,32,19,32,18,1,18,1,14,2,13,3,12,33,17,33,13,4,11,7,11,7,10,8,9,8,8,11,5,34,15,34,8,33,7,32,6,33,8,31,6,12,5,13,4,14,4,15,3,16,3,17,2,18,2,24,2,31,6,28,6,29,5,27,5,27,4,25,4,25,3,21,3,19,4,21,4,17,6,18,5,17,10,17,7,27,7,29,7,18,10,19,9,18,11,21,8,21,9,22,8,23,8,28,8,28,9,30,11,28,10,30,12,31,11,32,12,30,13,30,15,29,16,27,18,27,19,25,21,27,18,24,18,25,19,25,21,26,22,28,23,19,18,19,19,17,17,17,20,18,20,17,21,17,21,19,23,9,11,11,11,8,12,9,12,11,12,12,12,8,13,8,16,12,13,13,13,13,14,13,16,12,16,12,17,11,17,11,19,7,17,7,19,6,19,10,19,4,20,5,20,5,14,5,16,4,16,4,17,8,20,10,20,9,21,10,21,11,22,12,22,13,23,15,23,15,22,17,22,16,24,17,24,18,25,20,25,21,25,26,26,12,26,15,29,16,29,17,30,18,30,19,31,20,31,21,31,22,32,32,32,33,31,34,31,22,31,22,34,23,35,23,36,24,37,27,37,28,36,30,34,25,33,27,33
:For(A,1,dim(Rép)-3,4
:Ligne(Rép(A),Rép(A+1),Rép(A+2),Rép(A+3
:End
Pif, paf, pouf. Terminé.

Il faut bien comprendre:

  • Rép (ou Ans) est une liste. Donc je peux très bien écrire Rép(A) comme j'écrirais L1(A). cheers 
  • Dans une boucle For allant de 1 à la dimension de la liste moins 3 (c'est à dire du début de la première ligne au début de la dernière ligne), je vais demander à la fonction Ligne de dessiner selon les coordonées A, A+1, A+2 et +3.


[Graphismes] Dessinez avec une base de données File

Des questions ? Vous êtes pas trop fatigués ? Sleep 
Il vous reste ensuite à rajouter les quelques Pt-On nécessaires à la complétion de votre dessin !


Optimisation plus poussée: si tous les points se relient

Dans le précédent exemple, on a finalement pas gagné grand chose en poids, et on a perdu en vitesse.
Quand tous les points se relient, il y a moyen d'exploser le gain de poids. Bien Joué 

Il suffit de décaler A de 2 et pas de 4, pour utiliser deux fois de suite les mêmes coordonnées ! Wink

[Graphismes] Dessinez avec une base de données Wabbit10

Considérons ce nouvel exemple.

Code:
:{10,10,30,30,21,45,10,30,30,10,30,30,10,30,10,10,30,10
:For(A,1,dim(Rép)-3,2
:Ligne(Rép(A),Rép(A+1),Rép(A+2),Rép(A+3
:End
Le première fois, l'algorithme va utiliser 10,10,30,30.
Puis, A ne va se décaler que de 2:
La seconde fois, il utilisera 30,30,21,45.

Cette technique nous permet d'économiser non plus 1, mais une moyenne de 5 octets par ligne !!! Bien Joué

Et on utilise très souvent des dessins avec des points reliés, quand on y fait attention.
C'est surtout dans ce cas là que la base de données devient un avantage... study 

Allez, faites en bon usage !! Bien Joué


Dernière édition par persalteas le Sam 26 Oct 2013 - 11:20, édité 1 fois
persalteas
persalteas
----------------------
----------------------

Messages : 483
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://tout82.forumactif.org

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par m@thieu41 Sam 26 Oct 2013 - 10:52

Super tuto encore une fois Bien Joué
m@thieu41
m@thieu41
----------------------
----------------------

Messages : 939
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par Wistaro Sam 26 Oct 2013 - 10:55

Merci pour ce superbe tutoriel!

Mias il y une chose que je ne comprend pas:
Persalteas a écrit:Dans une boucle For allant de 1 à la dimension de la liste moins 3 (c'est à dire du début de la première ligne au début de la dernière ligne), je vais demander à la fonction Ligne de dessiner selon les coordonées A, A+1, A+2 et +3.
Tu peut m'expliquer pourquoi tu fait cela? je ne voit pas trop l’intérêt de prendre le début de la première ligne au début de la dernière ligne
Wistaro
Wistaro
Passioné
Passioné

Messages : 918
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par persalteas Sam 26 Oct 2013 - 10:57

Je vais répondre avec une image :P

Le temps de la créer... :P
persalteas
persalteas
----------------------
----------------------

Messages : 483
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://tout82.forumactif.org

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par Wistaro Sam 26 Oct 2013 - 11:06

OK pas de soucis Smile

Heu...une image Question
Wistaro
Wistaro
Passioné
Passioné

Messages : 918
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par persalteas Sam 26 Oct 2013 - 11:21

[Graphismes] Dessinez avec une base de données File
persalteas
persalteas
----------------------
----------------------

Messages : 483
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://tout82.forumactif.org

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par m@thieu41 Sam 26 Oct 2013 - 11:29

J'aime bien le principe d'expliquer avec une image Razz.
m@thieu41
m@thieu41
----------------------
----------------------

Messages : 939
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par persalteas Sam 26 Oct 2013 - 11:30

Ben tiens... Va résumer ça à l'écrit ! Very Happy

Bien plus simple, les schémas Razz

Je fais plein de SVT et de biotechno, moi, dans la vie. J'aime les schémas. =D 
persalteas
persalteas
----------------------
----------------------

Messages : 483
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://tout82.forumactif.org

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par Wistaro Sam 26 Oct 2013 - 12:34

Merci pour le schéma explicatif!
Wistaro
Wistaro
Passioné
Passioné

Messages : 918
Points Concours : 86
Productivité : 28
Date d'inscription : 16/06/2013
Localisation : Tarbes - DUT GEII
Calculatrice(s) :
  • TI-82
  • TI-82 Stats
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://www.youtube.com/user/Wistaro

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par pito2901 Sam 26 Oct 2013 - 18:42

Bravo, pour une fois que je comprends un tuto, j’essaierai donc à partir de demain soir, de faire le visage de mario avec...
pito2901
pito2901
Passioné
Passioné

Messages : 532
Points Concours : 1
Productivité : 12
Date d'inscription : 02/09/2013
Localisation : Nevers
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

http://www.clictune.com/id=179469

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par pito2901 Dim 27 Oct 2013 - 19:45

Pour les pt-On(, ça donne:

Code:

:{2,19,18,17,20,23,3,17,21,24,30,33,26,36,25,34,27,34}
:For(A,1,dim(Rép)-1,2
:Pt-On(Rép(A),Rép(A+1
:End
Non ?
pito2901
pito2901
Passioné
Passioné

Messages : 532
Points Concours : 1
Productivité : 12
Date d'inscription : 02/09/2013
Localisation : Nevers
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

http://www.clictune.com/id=179469

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par m@thieu41 Dim 27 Oct 2013 - 22:57

C'est ça tu as compris le système Wink .
m@thieu41
m@thieu41
----------------------
----------------------

Messages : 939
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par Linkakro Mer 30 Oct 2013 - 1:38

Persalteas dévoile et explique en plus le "secret industriel" de son morpion à graphisme 3D. Faisons en bon usage. Razz
Linkakro
Linkakro
----------------------
----------------------

Messages : 533
Points Concours : 55
Productivité : 31
Date d'inscription : 30/07/2013
Localisation : origine région centre, puis perpignan
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par persalteas Mer 30 Oct 2013 - 9:13

J'utilise ce système a peu près systématiquement dans mes programmes...

C'est même la principale différence entre Herssahe 4.0 et 4.2 pour ceux qui connaissent:

Herssahe 4.0 est tout en Ligne(), le 4.2 est tout en bases de données...

Donc l'un est lourd et fluide, l'autre est plus léger et plein de lags...
persalteas
persalteas
----------------------
----------------------

Messages : 483
Points Concours : 152
Productivité : 39
Date d'inscription : 06/12/2012
Localisation : Savoie, France
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

https://tout82.forumactif.org

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par pito2901 Mer 30 Oct 2013 - 9:51

Ah... La Ti... Ce n'est qu'une calculatrice tout de même...
pito2901
pito2901
Passioné
Passioné

Messages : 532
Points Concours : 1
Productivité : 12
Date d'inscription : 02/09/2013
Localisation : Nevers
Calculatrice(s) :
  • TI-82 Stats.fr

. : TI-82 Stats.fr

http://www.clictune.com/id=179469

Revenir en haut Aller en bas

[Graphismes] Dessinez avec une base de données Empty Re: [Graphismes] Dessinez avec une base de données

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum