π
<-

[Programme C] Algorithme de traçage de pixel

C, C++, ASM...

Re: [Programme C] Algorithme de traçage de pixel

Unread postby JayTe » 11 Feb 2010, 14:43

Pour la conversion bitmap->nspire il y a toujours le gros problème de l'accès au fichier: lorsque le code s'execute dans l'émulateur, il ne peut pas accéder aux fichiers qui sont sur le disque dur de l'ordinateur (le code est confiné à l'environnement créé par l'émulateur)

Par contre on pourrait peut-être essayer avec la nouvelle fonction send de l'émulateur (mais je suis assez sceptique, car cette fonction doit écrire dans la ROM créée pour l'émulateur (à vérifier), qui n'existe pas dans les programmes que l'on fait.

Pour l'instant la seule solution que je vois est d'intégrer le bitmap dans le fichier .c à la compilation (par contre c'est tout sauf dynamique). C'est assez facile à faire avec GIMP qui propose une fonction d'exportation des images en fichiers .c, et on a juste à inclure ces fichers dans la source à la compilation

a+
JayTe
TabVar - Etude de fonctions sur Nspire!
Image
User avatar
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 81.6%
 
Posts: 207
Joined: 26 Jan 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Polytechnique

Re: [Programme C] Algorithme de traçage de pixel

Unread postby Levak » 11 Feb 2010, 14:43

JayTe wrote:Wow impressionant! :#tritop#:
Par contre (je sais je suis pointilleux :;): ) c'est normal les lignes horizontales noires?
/me cours demander le pack en question à geogeo :):

a+

Merci.
Non les lignes noires ne sont pas prévues, c'est un problème d'incrément que je n'arrive pas à résoudre.

Critor Désolé, je viens de comprendre comment ça marche, en fait le tns est un fichier *.bin qui se lance sur émulateur. Il faudra attendre Ndless pour le lancer en natif. :(:
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [Programme C] Algorithme de traçage de pixel

Unread postby Levak » 11 Feb 2010, 14:54

Problème d'écran résolu, c'était le ratio qui causait problème.
au lieu de 1.2 et -1.2 il fallait mettre 1.5 et -1.5, en fait c'et un écran 4/3 :#langue#:
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [Programme C] Algorithme de traçage de pixel

Unread postby JayTe » 11 Feb 2010, 14:56

Ok cool :D:
Tu nous postes un nouveau screen (je peux pas encore tester :;): ) ?
TabVar - Etude de fonctions sur Nspire!
Image
User avatar
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 81.6%
 
Posts: 207
Joined: 26 Jan 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Polytechnique

Re: [Programme C] Algorithme de traçage de pixel

Unread postby Levak » 11 Feb 2010, 14:59

Image

intervalle : x(-2;2) y(-1.5;1.5)
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: [Programme C] Algorithme de traçage de pixel

Unread postby JayTe » 11 Feb 2010, 15:02

Waow... c'est beau...
:#tritop#: :#fou#:

J'ai trop envie de pouvoir tester ... :D:
TabVar - Etude de fonctions sur Nspire!
Image
User avatar
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 81.6%
 
Posts: 207
Joined: 26 Jan 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Polytechnique

Re: [Programme C] Algorithme de traçage de pixel

Unread postby critor » 11 Feb 2010, 15:21

JayTe wrote:Pour la conversion bitmap-nspire il y a toujours le gros problème de l'accès au fichier: lorsque le code s'execute dans l'émulateur, il ne peut pas accéder aux fichiers qui sont sur le disque dur de l'ordinateur (le code est confiné à l'environnement créé par l'émulateur


Je n'ai jamais demandé à ce que l'émulateur ou la nSpire accède directement au fichier.

Cela me semble évident qu'il faut:
- un utilitaire sur ordi pour faire la conversion
- un programme sur nSpire pour afficher l'image en niveaux de gris
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.4%
 
Posts: 42393
Images: 17088
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: [Programme C] Algorithme de traçage de pixel

Unread postby Adriweb » 11 Feb 2010, 16:13

C'est vraiment très beau ..... Franchement, j'ai hâte que le "jailbreak" sorte, que j'exécute ce Mandelbrot !

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Programme C] Algorithme de traçage de pixel

Unread postby JayTe » 11 Feb 2010, 17:22

Bon voila, j'ai fait ce qu'avait proposé critor:
Pour convertir les images: BMPtoC. Petit prog que je viens de faire et qui (contrairement à ce que son nom laisse penser :D: ) prend en charge tous les formats communs comme les bmp, jpg, png...
Il faut lui faire créer un fichier .c du nom de votre choix.
L'image fournie en entrée peut être de n'importe quelle taille, en niveau de gris ou en couleur, mais plus elle est grosse et plus elle sera longue à afficher.
Ensuite il faut compiler ce fichier:
 
Show/Hide spoilerAfficher/Masquer le spoiler
photo.c
Code: Select all
#include "screen.c"
#include "keys.c"
//remplacez image.c par le nom du fichier créé par le programme BMPtoC
#include "image.c"

void dispIMG(int xoff, int yoff, unsigned char img[][256], unsigned int width, unsigned int height)
{
   unsigned int i, j;
   for(i = 0; i  width; i ++)
   {
      for(j = 0; j  height; j ++)
      {
         setPixel(xoff + i, yoff + j, img[j][i]);
      }
   }

}

int main()
{
   int e = 0, ximg = 0, yimg = 0, t;
   
   
   dispIMG(ximg, yimg, image, image_width, image_height);
   
   while(1)
   {
   e = 0;
      if(isKeyUpPressed())
      {
         yimg --;
         e = 1;
      }
      if(isKeyDownPressed())
      {
         yimg ++;
         e = 1;
      }
      if(isKeyLeftPressed())
      {
         ximg --;
         e = 1;
      }
      if(isKeyRightPressed())
      {
         ximg ++;
         e = 1;
      }
      if(e)
      {
         clrscr();
         dispIMG(ximg, yimg, image, image_width, image_height);
      }
   }
   return 0;
}

avec screen.c:
Code: Select all
void setPixel(int x, int y, unsigned int color)
{
   static unsigned char *scr = (unsigned char *) 0xa4000100;
   if(x = 0  x  320  y = 0  y  240)
      scr[y*160+x/2]=x1? (scr[y*160+x/2]0xF0)+color : (scr[y*160+x/2]0x0F)+(color 4);
}

void clrscr()
{
   int i,j;
   for(i = 0; i  320; i ++)
      for(j = 0; j  240; j ++)
         setPixel(i, j, 0xF);
}


et keys.c:
Code: Select all
asm(".macro is_key_pressed row, column");
asm("ldr r0, =(0x900E0000 + row )");
asm("ldrh r0, [r0]");
asm("tst r0, column");
asm(".endm");

int isKeyLeftPressed()
{
   asm("is_key_pressed 0x1e, #0b000001000000");
   asm("movne r0, #0x0");
   asm("moveq r0, #0x1");
}

int isKeyRightPressed()
{
   asm("is_key_pressed 0x1e, #0b000000000100");
   asm("movne r0, #0x0");
   asm("moveq r0, #0x1");
}

int isKeyUpPressed()
{
   asm("is_key_pressed 0x1e, #0b000000000001");
   asm("movne r0, #0x0");
   asm("moveq r0, #0x1");
}

int isKeyDownPressed()
{
   asm("is_key_pressed 0x1e, #0b000000010000");
   asm("movne r0, #0x0");
   asm("moveq r0, #0x1");
}


On peut faire bouger l'image en appuyant sur les flèches directionnelles, et même la faire sortir de l'écran (c'est pour ça que ça marche avec des images plus grandes que l'écran de la nspire.

Au final on peut avoir quelque chose comme ça:
Image

:):

a+
JayTe
TabVar - Etude de fonctions sur Nspire!
Image
User avatar
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 81.6%
 
Posts: 207
Joined: 26 Jan 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Polytechnique

Re: [Programme C] Algorithme de traçage de pixel

Unread postby angelslife26 » 11 Feb 2010, 17:37

Peut-on directement mettre l'image convertie sur la calto??
La vie.
Silteplait, arrête.
User avatar
angelslife26
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 54.7%
 
Posts: 87
Joined: 27 Jan 2010, 00:00
Location: La
Gender: Male
Calculator(s):
MyCalcs profile
Class: fin du lycée

PreviousNext

Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: ClaudeBot [spider] and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
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.
2336 utilisateurs:
>2318 invités
>11 membres
>7 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)