1

Qelle est la méthode pour faire des rotations et des zooms de sprites sans utilliser de librairie?
J'ai pensé pour les rotations a calculer les coordonnées de chaques pixels en fonction de l'angle de rotation mais ca ne marche pas ou c'est très lent! et pour les zooms ca ne marche que en agrandissant car je trans forme les pixels per des carrés de 2, 3, 4 pix de cote. Mais en arrière ca ne marche pas sad
Aidez moi!!!

2

déjà, fait ton truc en basic, et tu y arrivera mieux, ensuite utilise tout ce que tu sais en ce qui concerne la trigonométrie, et donc les notations polaires (pour les rotations)
pour le zoom, le ne connais pas de remede miracle, a part le fait de balayer une ligne de pixels source, et d'étirer ou non cette ligne en trainant sur certains pixels, ou en en sautant quelques uns
:D

3

pour les rotations, matrices .. et pour les zoom, y doit y avoir aussi des matrices la dessous smile

4

une matrice est une liste considérée avec deux dimensions, mais les données d'une matrice sont stockées bout a bout en mémoire, comme une liste, donc, tout ça pour dire qu'une liste c'est directement la mémoire, donc une matrice c'est un bloc mémoire continu.
si tu fais des manips avec des matrices, je te vois venir avec une matrice source, et une autre pour le résultat, or il faut directement afficher le resultat, sinon tu perdras du temps, et même pas mal, je pense !
:D

5

Merci, mais pour étirer une ligne de 1 pix, je fais comment?
J'intercalle un aléatoirement un pixel?
Et pur la réduire, si j'en vire 1 au pif ca fait des trucs bizzares!

6

Ca serait cool de faire un tuto là dessus!

7

pr étirer/compresser une ligne-> tu prends:
la longueur de la ligne non étirée->li
la longueur de la ligne étirée->lf
tu fais li/lf->deltal
et puis:
en pseudo c:
fpos=0;
while(count=0;count<li;count+=deltal)
{
copypixel(int(count),fpos);
fpos++;
}
la fonction copypixel(x,y)
copie le pixel x de la ligne originale, et le place au pixel y de la ligne finale...
vala.
un système comme ça devrait marcher, une confirmation serait la bienvenue...
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

8

Erf a quoi ca sert d'ecrire des tuto...
j'ai fait un tuto sur les operateurs binaires.. et je vois sur le forum comment on divise un ombre par 2 rapidement...

perso, je pense que quasiment personne lit les tuto donc sad((((
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

9

Evidement si tu t'arréte là dessus....

10

aRf, TiMad .. le tuto est assez utile. Certes tout le monde ne le lit pas mais bon ... il faudrait je pense une version OFF-LINE pour que ce soit plus lu ...

tu peux toujours regarder les sources de ExtGraph .. la fonction Scale_machin est faite pour ca tongue

11

Il y a une méthode qui marche pour les 2 (rotations et zooms=homothéties) ou pour une combinaison des 2 (=rotozooms=similitudes directes): Soit T ta transformation. Soit T^-1 la transformation inverse. Il suffit alors de calculer T^-1(P) pour chaque pixel P de la destination, arrondir ses coordonnées aux entiers correspondants pour obtenir les coordonnées du pixel P0 correspondant (= "arrondir T^-1(P) au pixel P0 correspondant"), vérifier si P0 est à l'intérieur de la source et si c'est le cas, si P0 est allumé dans la source. Si les 2 sont le cas, on allume P, sinon on l'éteint. (Ou alors si P0 est en dehors de la source, on ne touche pas à P, sinon on l'allume si P0 est allumé et on l'éteint si P0 est éteint.) Comme ça, on est sûr de ne pas oublier des pixels de la destination, et de ne pas perdre du temps à allumer le même pixel plusieurs fois.
[edit]Edité par Kevin Kofler le 02-11-2001 à 23:30:47[/edit]
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é

12

Même si je n'ai pas tout compris a 100/100 je vais essayer
Mercismile

13

kevin, je pense que tes explications sont intéressantes, mais organises les un peu !
utilise les retours à la lignes !
ou je sais pas, mais le nouveau forum gère les couleurs, alors pkoi pas !
je dit ça parce que mon non plus j'ai pas tout compris wink
:D

14

c ce que je me tue à dire à chaque topic sur ce sujet... au lieu de prendre un pixel du sprite et de chercher où il va être sur l'écran, on prend un pixel de l'écran et on regarde à quel pixel il correspond sur le sprite...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

15

principe du texture mapping wink

sinon on a plein de trous...
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

16

bon en bref je vais expliquer un zoom 1/2 pour une image 4 gray c'est simple...
ca revient a passer de 4 pxl (un carre de 2) a un pixel...
apres pour savoir quel couleur choisir on fait des moyennes..
exemple:
Si on choisi un ordre de predominance : 0 >> 1 >> 2 >> 3
pallette de couleur: 0 1 2 3
|0 0|
|0 0| moyenne 0 donc c'est 0 ca donne evidenement 0

puis:
|11|
|22| moyenne 1 donc 1 (car 1 predomine sur 2)

de meme
|12|
|34| moyenne 2

|11|
|14| moyenne 1

Bon en bref c'est tout le tmps comme ca...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

17

Sbibi et Pollux> d'accord !
ça signifie que j'ai pas trop fait mon truc à l'envers, alors wink
oui, mais si on récupère un pixel sur l'image source ça ne fais que ralentir le truc !
:D

18

HerveRV> un fast pxltst qui fait du 48000c/S je pense pas que cela ralentisse trop...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

19

Pollux>Je doit étre idiot: On parcoure tout l'écran ou une zone pré-établie?

20

c pas du tout une question stupide !

oui, comment vous vous y prendriez ? vu que l'on ne peux pas savoir quelle taille l'image tournée aura à la fin !
:D

21

si c du texture mapping que tu fais, tu as les coordonnées des 4 pts de ton image... ds ce cas, c comme pour un polygon filler, tu fais un bresenham pour chaque côté, et à chaque fois que la valeur de y s'incrémente, tu stockes la valeur de x dans un tableau... ensuite tu as un tableau contenant pour chaque y deux valeurs de x, et tu dessines la ligne horizontale définie par ces deux X...
pour le texture mapping, c pareil sauf que qd tu dessines ta ligne horizontale, pour chaque pixel de cette ligne, tu vas voir à quoi il correspond dans ta texture... wink
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