[C] visualizzare pallini

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
jepessen
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3569
Iscrizione: lunedì 26 dicembre 2005, 11:49
Desktop: KDevelop
Distribuzione: Ubuntu 20.04
Sesso: Maschile
Località: Somma Lombardo

[C] visualizzare pallini

Messaggio da jepessen »

Salve...

Il mio problema è il seguente: ho un array di 32 elementi interi, con un valore che può essere 0 oppure 1 (in realtà è un reale, sopra oppure sotto una soglia, ma è lo stesso).

Quello che volevo fare era creare una finestrella dove far comparire dei cerchi, in un array 8x4, ognuno corrispondente ad un elemento dell'array, il cui colore varia al variare del contenuto dell'elemento dell'array cui corrisponde (tipo primo elemento: acceso, secondo elemento, spento e così via).

C'è qualche modo veloce per fare questo? Allo stato attuale, non ho bisogno di nessuna interattività, quindi non mi servono nè pulsanti nè altro, ma solo visualizzare.

Daniele
Compiz l'ha creato Chuck Norris quando ha colpito un computer con un calcio rotante.
http://www.renderosity.com/mod/gallery/ ... e=Jepessen
http://jepessen.wordpress.com/
Avatar utente
hds619
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 352
Iscrizione: domenica 15 aprile 2007, 20:23
Località: Ferrara
Contatti:

Re: [C] visualizzare pallini

Messaggio da hds619 »

Mmm..  per forza in una finestrella? perchè altrimenti potresti usare un'immagine ppm molto semplici da gestire.. ad esempio potresti fare qualcosa del genere:

Codice: Seleziona tutto

#include <stdio.h>
#include <stdlib.h>

typedef FILE* fp;

char *color(int r, int g, int b)
{
  char *rgb = (char *) calloc(3, sizeof(char));
  rgb[0] = (char) r;
  rgb[1] = (char) g;
  rgb[2] = (char) b;
  return rgb;
}

int main(void)
{
 int mio_array[10] = { 1, 0, 1, 0, 1, 1, 1, 0, 1, 0 }, i;
 fp ppm;
 
 if(!(ppm = fopen("array_int.ppm", "w"))) {
      printf("Impossibile aprire il file per la scrittura.\n");
      return -1;
 }
 fprintf(ppm, "P6\n"
              "%d %d\n"
              "255\n", 5, 2);
 fclose(ppm);
 if(!(ppm = fopen("array_int.ppm", "ab"))) {
      printf("Impossibile aprire il file per la scrittura binaria.\n");
      return -1;
 }
 
 for ( i = 0; i < 10; ++i ) {
       if ( mio_array[i] == 0 )
            fwrite(color(0, 0, 0), sizeof(char), 3, ppm);
       else fwrite(color(255,0,0), sizeof(char), 3, ppm);
 }
 fclose(ppm);
 
 return 0;
} 
L'output è un'immagine abbastanza piccola, ma con un pò di ingrandimento in questo caso del mio codice hai qualcosa del genere: Immagine
Ultima modifica di hds619 il giovedì 21 febbraio 2008, 7:09, modificato 1 volta in totale.
Avatar utente
jepessen
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3569
Iscrizione: lunedì 26 dicembre 2005, 11:49
Desktop: KDevelop
Distribuzione: Ubuntu 20.04
Sesso: Maschile
Località: Somma Lombardo

Re: [C] visualizzare pallini

Messaggio da jepessen »

Thanks... vedrò di adattarlo al mio problema. Se ho novità ti faccio sapere.

Daniele
Compiz l'ha creato Chuck Norris quando ha colpito un computer con un calcio rotante.
http://www.renderosity.com/mod/gallery/ ... e=Jepessen
http://jepessen.wordpress.com/
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti