60

Oui mais son effet est très rapide. C'est dommage que ça ne soit pas tt à fait ce qu'il me faut.

Il va donc falloir que j'utilise extgraph et un écran virtuel... Je ferais ça à mon retour de vacances zzz
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

61

rdn_spe, c'étais ma source et non celle de kévin!
Je suis en train d'en refaire une dans le meme style avec le choix des zooms que l'on veut!
Sinon, quelle est la méthode pour zoomer une image sans qu'un laisse celle d'origine sur le coté?
J'ai pensé a faire des écrans virtuels mais ca n'a pas marché
Merci d'avance pour vos réponses!

62

swal89> oui je c, g vu (réponse 36, deuxième ligne!!!)
excuse moi pour cette erreur je n'avais pas fait attention en écrivant ma réponsesmile

Kevin> c'est vrai qu'on ne peut pas superposer l'image de départ et l'image résutltante!
je v voir si on peut activer le mode gray, lire l'image de départ sur un plan et écrire le zoom sur l'autre plan puis désactiver le gray et mettre les 2 images ensemble

as-tu regardé ce que ça donne si on agrandit une image avec ça?
"xxxx" dans mon screenshot est une image (ce sont les axes de l'écran graph que g copié!)

je v quand même continuer a partir des sources de swal89, c'est bien d'avoir plusieurs méthodes
[edit]Edité par rdn_spe le 27-12-2001 à 13:24:13[/edit]

63

Bon maintenant on peut superposer l'image de départ et l'image résultante
zoom2.gif
zoom("nom_de_l'image", zoom en X, zoom en Y, X de l'image résultante, Y de l'image résultante)

La source est ici

[edit]Edité par rdn_spe le 28-12-2001 à 10:45:44[/edit]

64

Pas con l'utilisation des setplanes... Ça ralentit beaucoup ?

Sinon c'est vrai que c'est très rapide, mais ce n'est tjrs pas un zoom progressif sad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

65

ca ralenti d'un milèeme de decondes (on voit un peut l'image de départ en gris mais sans plus!)

je vais améliorer en rajoutant des fonctions:
-au lieu d'ouvrir un fichier on zoom une partie
-partie donnée par (x1,y1) et (x2,y2)
-affichage en mode AND, XOR, AND, ...

par contre je comprends pas se que tu entends par zoom progressif???

66

zoom progessif... c'est vrai que j'ai mal utilisé l'expression.

Je m'explique : je veux agrandir mon image disons à... 130% de sa taille. Et bah avec ton programme je peux pas, car il ne fait que 200% ou 300% ou 400% etc...

Celui de kevin avait la possibilité de zoomer exactement à la taille désirée, mais sans extgraph je ne voit pas vraiment comment le faire marcher (heu... y'a encore mon système de changements d'écrans foireux, mais comme dit kevin ça serait horriblement lent)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

67

Bon j'ai utilisé extgraph. Ça marche, merci kevin !

Zoom.gif

Mais bon comme vous le voyez c'est très lent mourn
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

68

ca demande un peu d'optimisation cela smile
En préretraitre

69

J'ai une question:
tu demande de zoomer tout le lcd ou tu calcule d'abord le rectangle qu'il faut zoomer pour faire ensuite le zoom? la premiere methode est beaucoup plus lente que la deuxieme...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

70

J'indique la partie à zoomer et il l'agrandit pour qu'elle fasse tout le lcd
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

71

bob64> ca te sert à quoi cette fonction smile
En préretraitre

72

a apprendre à programmer en C.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

73

t'as pas un projet smile
parce que pour apprendre, on fait tjrs qqchose smile
En préretraitre

74

si, cette fonction entrera dans la lib que j'utilise pour faire mon rpg
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

75

ben vala smile
En préretraitre

76

bah quoi le l'ai déjà dit sur le forum, je crois
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

77

ah bon
peut etre
mais je viens rarement en C-BASIC sad
En préretraitre

78

bah je sais que je l'ai dit dans basic au moins une fois, sinon plus
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

79

KEVIN si tu passe par la lis le post n°67 stp
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

80

Bon, j'ai encore amélioré certains trucs. Maintenant le prog travaille à partir d'un sprite (d'ailleurs regardez le topic 'reconnaissance chaine & taille sprite' svp...)

Démonstration :
Zoom2.gif


Bon tout à l'air normal mais si vous regardez bien vous voyez le dessin clignoter en haut à gauche de l'écran. Et malheureusement je n'ai pas pu empecher ça, regardez le source :

char cible[LCD_SIZE],source[LCD_SIZE];
unsigned short x,y;
memcpy(source,LCD_MEM,LCD_SIZE);
[**** Les lignes indiqués dans TIGCC pour afficher une 'pic' à l'écran ***]
memcpy(cible,LCD_MEM,LCD_SIZE);
LCD_restore(source);
for(x=commandes[2];x<=commandes[4];x++)
for(y=commandes[3];y<=commandes[5];y++)
{
if (EXT_GETPIX(cible,(x-commandes[2])*commandes[6]/(commandes[4]-commandes[2]),(y-commandes[3])*commandes[7]/(commandes[5]-commandes[3]))) EXT_SETPIX(source,x,y);
else EXT_CLRPIX(source,x,y);
}
LCD_restore(source);


Détail des variables :
commandes[2] : Coin x1 ou le sprite zoomé sera affiché
commandes[3] : Coin y1 ou le sprite zoomé sera affiché
commandes[4] : Coin x2 ou le sprite zoomé sera affiché
commandes[5] : Coin y2 ou le sprite zoomé sera affiché
commandes[6] : Dimention X du sprite
commandes[7] : Dimention Y du sprite

Si je pouvais me passer des commandes[6] et [7] ça serait bien, voyez le topic 'reconnaissance chaine & taille sprite' pour plus d'informations.

J'utilise des tas de memcpy et LCD_restore, je vais expliquer dans le détail à quoi ça sert :

1) Sauver l'écran original dans 'source'
2) Afficher le sprite
3) Sauver l'écran avec le sprite dans 'cible'
4) Restaurer l'écran de départ
5) Effectuer le zoom sur l'écran virtuel 'source'
6) Afficher source, qui est donc l'écran de départ avec le zoom effectué

Tout ça parceque l'affichage de la variable pic ne peut se faire que sur le LCD_MEM et non sur un de mes écrans virtuels. Je ne sais pas pourquoi, mais quand j'essaye ça plante.

Voilà si qqun peut m'aider...
[edit]Edité par Bob 64 le 31-12-2001 à 13:13:53[/edit]
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

81

Allez aidez moi svp mourn
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

82

char cible[LCD_SIZE],source[LCD_SIZE];
unsigned short x,y;
memcpy(source,LCD_MEM,LCD_SIZE);
PortSet(cible,239,127); /* 239,127 même sur TI-89! */
[**** Les lignes indiqués dans TIGCC pour afficher une 'pic' à l'écran ***]
PortRestore();
for(x=commandes[2];x<=commandes[4];x++)
for(y=commandes[3];y<=commandes[5];y++)
{
if (EXT_GETPIX(cible,(x-commandes[2])*(commandes[6]-1)/(commandes[4]-commandes[2]),(y-commandes[3])*(commandes[7]-1)/(commandes[5]-commandes[3]))) /* -1 parce qu'un sprite de largeur 8 va de x=0 à x=7 seulement, pas à x=8 */ EXT_SETPIX(source,x,y);
else EXT_CLRPIX(source,x,y);
}
LCD_restore(source);

[edit]Edité par Kevin Kofler le 02-01-2002 à 03:22:19[/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é

83

A marche pas, c ce que j'ai dit tt en bas sad
Je sais pas pkoi mais la routine qui affiche une pic ne marche pas si on PortSet ailleurs.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

84

À mon avis, c'est parce que tu avais fait un mauvais PortSet (il faut toujours ,239,127). Ou alors parce que tu avais oublié le PortRestore.
[edit]Edité par Kevin Kofler le 02-01-2002 à 03:26:15[/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é

85

C'est possible, je pense que j'ai mit (159,99) pour le PortSet.
Mais pkoi il faut mettre les dimentions de la 92 obligatoirement ?

-1 parce qu'un sprite de largeur 8 va de x=0 à x=7 seulement, pas à x=8
=> Oui ça j'avait prit en compte, le -1 était déja effectué avant dans le prog
[edit]Edité par Bob 64 le 02-01-2002 à 03:30:20[/edit]
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

86

>=> Oui ça j'avait prit en compte, le -1 était déja effectué avant dans le prog

Mais sur ton screenshot, on voit un pixel parasite à droite et en bas des sprites...

Et il faut les dimensions de la TI-92(+) parce que ce sont celles utilisées dans LCD_MEM.
Et n'oublie pas le PortRestore(), sinon ça plantera.
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é

87

Ok, merci !
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)