1

-

2

plus rapide que ClrScr, écrit toi-même ta fonction smile
et en ASM, ça sera encore mieux smile


ben, sinon, évite les float... ne travaille qu'avec des nombres entiers...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

3

-

4

ben alors, demande pas comment les éviter roll

au pire, tu fais une matrice contenant les parties entières (chiffres avant la virgule), et une autre pr les chiffres après la vrigule...
(chaque matrice étant composée d'entiers)
mais c la merde pr faire des calculs...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

5

Le must, si tu veux travailler avec au pire des mots long dans des tableaux ou des matrices, utilises les handlesgrin
Par contre c'est en ASM (peut être en C mais c pas ma tasse de thésmile donc compte pas sur moi pour te dire comment faire)

6

-

7

ben, tu peux dérouler partiellement ta boucle...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

8

-

9

erf.. pour eviter les floats, ce qu'il te faut c la virgule fixe...

tu décales tout de mettons 8 bits vers la droite: x<<8 et pour reavoir la valeur d'origine, tu reredécale tout vers la gauche...

décaler de 8 (<<) ça revien a multiplier par 256

dc si t'as des nombres x1 et x2 qui sont décalés de 8 bits vers la gauche et si tu les multiplie entre eux, pour avoir le résultat au bon format, il faudra que tu redécale de 16 bits vers la gauche...

z = (x<<8) * (y<<8);
z >>= 16;

(fais gaffe aux parenthèses pour les décalages... vaut mieux en mettre trop que pas asez, sous peine d'avoir de mauvaises surprises...)

je suppose que c'est pour ton prog 3D...
c sur ke de copier/coller depuis le tuto d'heulin ça doit pas mal ramer sur la ti gringringrin

tu transforme ta matrice de floats en matrice de longs, et tu stocke tout en <<8 smile
mais fait gaffe, vu qu"il y a des multiplications pour arriver aux valeurs a stocker dans la matrice, il faudra que tu reredécale vers la droite pour rétablir le <<8 smile
par exemple:
(sin et cos sont en virgule fixe, <<8)

en floats:
X=(sin(A)+cos(B))*Sin(C)

en virgule fixe:

X=(sin(A)+cos(B))*sin(C)>>8

et pour avoir la bonne valeur de X, tu fais X>>8
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

10

-

11

bah... j'incrémente un compteur a chaque frame, et ttes les secondes, je le recopie dans la var du fps avant de le remettre a 0

c pa plus compliké que ça gringringrin
perso j'utilise l'AI5 pour compter les secondes...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

12

-

13

-

14

Orion_ a écrit :
hum, atta, 2 secondes, si j'ai bien compris,
si je fait au depart:
par exemple: long Sin[360],Cos[360]; et long matrice[3][3];
ensuite pour les sinus et cos::
for(i=0;i<360;i++)
{
Sin[i]=sin(i * 3.1415927 / 180);
Sin[i]=Sin[i]<<8;
Cos[i]=cos(i * 3.1415927 / 180);
Cos[i]=Cos[i]<<8;
}

ça ne marchera pas! pour le faire entrer dans la matrice qui est en entier (long), le float sera approximé en int, tu te retrouvera avec juste 3 valeurs possibles pour tes sin et cos: -1,0 et 1... fais plutot ça:

for(i=0;i<360;i++)
{
Sin[i]=sin(i * 3.1415927 / 180)*8;
Cos[i]=cos(i * 3.1415927 / 180)*8;
}

par exemple si j'ai qu'un seul nombre comme: -Sin[Ya]
je fait juste: (-Sin[Ya]) >>8

NON! si tu redivise par 256, tu perdra toute l'info!!! ça passera de 0 a 1 ou a -1 sans aucune autre précision!
ça tu le laisse comme ça dans ta matrice!
-Sin[Ya]

par contre si j'ai une multiplication::Cos[Za]*Cos[Ya]
je fait : (Cos[Za]*Cos[Ya]) >>16

Idem qu'au dessus...
(Cos[Za]*Cos[Ya]) >>8

et si j'en ai 2,: Cos[Za]*Sin[Ya]*Sin[Xa]
je fait:: ((Cos[Za]*Sin[Ya]*Sin[Xa]) >>24)

c sa ou alors, j'ai mal compris ? et pour les FPS tu fait comment ?

(Cos[Za]*Sin[Ya]*Sin[Xa]) >>16

c'est APRES, quand tu calcule la rotation que tu redécale par 8...

X = (x11*x + x12*y + x13*z)>>8;
Y = (x21*x + x22*y + x23*z)>>8;
Z = (x31*x + x32*y + x33*z)>>8;

ac par exemple x11,x12,...,x32,x32 les cases de ta matrice...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

15

-

16

c'est pas 20 pour l'AI5... utilise 18 ou a tout caser 19...
18 c'est le + juste smile
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

17

-

18

la doc de tigcc marque 20 pour 1 sec? triso
bah tiens, fais un compteur de seconde et teste sur 60 sec, 20 c bcp trop...
en testant, j'ai trouvé que ct entre 17 et 18

pour ton point noir, c tt a fait normal grin
kan on passe des floats aux int, y a tjrs un truc ki foire grin
(demande a neurone si g tort gni)

t'as plus aucun float? mm dans les projections...
bah copi colle ton code (juste rotations+projections)
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

19

-

20

oups kel con grin dsl gringringrin
petit erreur grin
o depart j'av mis <<8, ms comme c des floats, ça march pa, dc g just remplacé le << par un *
dsl smile
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

21

Orion_ a écrit :
Voila, j'ai une matrice en float
et le probléme c que sa ralentis enormement mon programme lors
des nombreux calcul avec cette matrice, je voudrais savoir comment eviter le float, SVP.

Virgule fixe. Mais on t'a déjà bien répondu à ce sujet.
je voudrais aussi savoir comment faire pour qu'une matrice ne "soit" pas dans un prog,
j'entend par la que la matrice soit a l'interieur du prog
comme un :: section data truc dc.b 0,0,0,0,0
en asm, or moi je voudrais l'equivalent d'un :: section bss truc ds.b 5 pour eviter que mon programme soit alourdi.

char *truc;

void _main(void)
{
truc = malloc(5*sizeof(char));
// ...
free(truc);
}

PS: a oui, temps que j'y suis, y'a t'il un truc plus rapide qu'un ClrScr(); ? j'ai essayer memset(LCD_MEM,0,3840); mais c pas vraiment mieux.

FastClearScreen de ExtGraph.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

22

>en asm, or moi je voudrais l'equivalent d'un :: section bss truc ds.b 5
>pour eviter que mon programme soit alourdi.

L'équivalent en C est :
long Matrice[20][36];
Pas d'ínialisation, et en mode kernel (le nostub gere pas les bss).

23

-

24

gni c vrai

25

-

26

Orion > ton cube il est en fil de fer et prend pas tout l'écran si je ne me trompe ? grin
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

27

-

28

C'est quand meme byzarre que ca soit si lent l'initalisation du sinus.
Enelve le printf, ca ira plus vite deja roll

29

oué grin
c après qu'on devient déçu tongue
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

30

-