GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C



Похожие документы
Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Guida all uso di Java Diagrammi ER

Guida per l utilizzo del software Registro Pazienti v1.2

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

Invio SMS. DM Board ICS Invio SMS

Come creare il test di Yasso tramite l applicazione Training Center

Tutorial 3DRoom. 3DRoom

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

CREARE MAPPE CONCETTUALI CON POWER POINT PowerPoint della versione 2003 di Office

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

File, Modifica, Visualizza, Strumenti, Messaggio

Audio IP Manager Guida Utente

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Office 2007 Lezione 07. Gestione delle immagini

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina

Disegni di Ricerca e Analisi dei Dati in Psicologia Clinica. Rcmdr

SOMMARIO... 3 INTRODUZIONE...

Introduzione a Dev-C++

Tale attività non è descritta in questa dispensa

Funzioni in C. Violetta Lonati

Il programma CONFELMOD CAD creazione e modifica

Centro Iniziative Sociali Municipio III

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Questo è riservato all Organizzazione Nazionale per la sistemazione delle parrocchie negli alberghi e per controlli contributi

Tutorial 17. Come creare un cancello personalizzato e inserirlo in libreria

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

Eclipse - Nozioni Base

Panoramica Masergy Communicator

Guida all uso di. a cura dell Area Economia Applicata (AEA) - IPI

Come creare il test di Conconi tramite l applicazione Training Center

Programma Gestione Presenze Manuale autorizzatore. Versione /08/2010. Area Sistemi Informatici - Università di Pisa

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Arduino: Programmazione

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

Innanzitutto andiamo sul sito ed eseguiamo il download del programma cliccando su Download Dropbox.

Il pacchetto contiene sia l ambiente di sviluppo sia i driver per la scheda.

Come iniziare a usare Google Drive

MANUALE PARCELLA FACILE PLUS INDICE

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Manuale Utente Amministrazione Trasparente GA

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Office 2007 Lezione 02. Le operazioni più

Software TotoQuote expert 2014

Codifica: dal diagramma a blocchi al linguaggio C++

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa

Come creare uno schema per il punto croce con il PAINT

Aggiungere le funzionalità ACN in Iatros

Manuale Utente Albo Pretorio GA

Tutorial App Inventor #2 - messaggio automatico

FASI PER UNA CORRETTA INSTALLAZIONE DI ULTRA VNC E SKYPE

Guida informatica per l associazione #IDEA

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Guida all utilizzo del CRM

Overlay - video. Formati video: h264 - flv Dimensione: non superiore a 100 MB.

INSTALLAZIONE JOOMLA

1 Introduzione Installazione Configurazione di Outlook Impostazioni manuali del server... 10

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Convertitori numerici in Excel

Configurare TPTP in Eclipse e testare un applicazione

Moodle Guida rapida per docenti

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Gestire immagini e grafica con Word 2010

Tutorial per il modulo Composizione e tecnica fotografica Un approfondimento sulla fotografia panoramica. Roberto Gonella, Alberto Terragni

Basi di dati Microsoft Access

GUIDA ALL INSTALLAZIONE DEI ROTABILI v.1.1 TRAIN SIMULATOR 2014

INTRODUZIONE I CICLI DI BORSA

1 SOMMARIO OPERAZIONE DI FIRMA DIGITALE... 2

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

GUIDA DETTAGLIATA ALL ACQUISIZIONE DELL ACCOUNT GMAIL.

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/ fax: 041/

L amministratore di dominio

2 - Stesura della Proposta di Aggiornamento partendo da un rilievo misto GPS.

COME FARE UNA RICHIESTA DI ASSISTENZA ON LINE (AOL)

SCOoffice Address Book. Guida all installazione

Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara.

CMS MUSEO&WEB. Mappe grafiche. Andrea Tempera (OTEBAC) 12 aprile 2010

MERIDESTER SOFTWARE DI COMUNICAZIONE PER PC

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

MANUALE UTENTE. Computer Palmare WORKABOUT PRO

Esistono sostanzialmente due metodi per inserire un video online (preso da siti di video sharing come Youtube) in un powerpoint slideshow :

I link o collegamenti ipertestuali

Guida Software GestioneSpiaggia.it

ISTRUZIONI PER L INSTALLAZIONE DI MINGW

Installazione e Configurazione della strumentazione necessaria. Antonio Gallo info@laboratoriolibero.com

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Introduzione. Installare EMAS Logo Generator

MODULO STAMPA BOLLETTINO PDF

NON LASCIAMOLO SOLO! TUTORIAL PER CREARE COMPONENT 2D IN SKETCHUP CHE GENERINO OMBRE E SI ORIENTINO VERSO IL PUNTO DI VISTA

Manuale Backoffice. 1 Introduzione. 2 Attivazione del Backoffice

Olga Scotti. Basi di Informatica. File e cartelle

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Sistema GEFO. Guida all utilizzo Presentazione delle domande

Транскрипт:

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte. Il software che utilizzeremo sarà l IDE Dev c++, di cui sono riuscito a trovare solo versioni per windows. A questo link potrete trovare la distribuzione per ambiente windows. Installiamo ed eseguiamo il wizard del programma per la sua configurazione. Per lavorare in grafica abbiamo bisogno delle librerie allegro, quindi scarichiamo l aggiornamento andando in: strumenti - cerca aggiornamenti e scaricando il pacchetto allegro. INTRODUZIONE Salve, questa guida tratta di programmazione grafica in C. Tratteremo grafica bidimensionale, non 3D. La programmazione grafica risulta semplice, ma allo stesso tempo, necessita di una buona capacità di ragionamento per arrivare alla soluzione del problema prefissato.

LET S START! Bene, ora siamo nel nostro ambiente di sviluppo, dobbiamo aprire un nuovo progetto; file nuovo progetto multimedia - allegro application(dll) selezioniamo inoltre, il linguaggio c standard. Il risultato sarà un sorgente dato di standard dove vengono definiti alcuni parametri per il nostro lavoro; proviamo a fare compila e poi esegui (F9). Ecco che compare di output una finestra 640X480 di colore nero. Analizziamo il corpo sorgente. while (!key[key_esc]) { indica che l output generato sarà visualizzato sino a quando non verrà premuto il tasto ESC. Ciò che sta al di fuori della funzione main() serve a definire l output, ad esempio res = set_gfx_mode(gfx_autodetect_windowed, 640, 480, 0, 0); definisce le dimensioni dell output. In ambiente grafico si lavora moltissimo con le funzioni; per avere sotto mano le funzioni date di standard da allegro, andiamo a cercare il file allegro.chm nella directory del software ad esempio: C:\Dev-Cpp\docs\allegro\allegro.chm Noi, a livelli base, useremo le funzioni che si trovano in API - Drawing Primitives. Iniziamo a scrivere un po di codice. Prendiamo in considerazione la funzione line() La sua sintassi è line(output(noi useremo screen), x, y, x2, y2, colore); dove x e y sono le coordinate di un estremo del segmento e x2 e y2 sono le coordinate dell altro estremo.(vedi immagine seguente)

come riferimento va ricordato che il primo punto in alto a sinistra ha coordinate (0,0), l ultimo punto in basso a destra, ha coordinate, in questo caso, (639, 479). void init(); void deinit(); int x = 30; int y = 30; int x2 = 90; int y2 = 90; int bianco = 0xffffff; int main() { init(); while (!key[key_esc]) { line(screen, x, y, x2, y2, bianco); Produrrà questo risultato(le coordinate le ho aggiunte io in paint)

Il nostro programma quindi ci ha disegnato una linea sull ouput, alle coordinate che gli avevamo assegnato. Ora proviamo, per farvi notare una cosa, a incrementare o a decrementare una coppia delle variabili ad esempio aggiungere nella while(!key[key_esc]) i valori x = x 10; x2 = y 10; mandate in esecuzione e lasciatelo eseguire per una decina di secondi, notiamo quindi che vengono disegnate linee verso destra, e queste linee continuano fino a quando non viene premuto il tasto ESC; dove sta il problema? Le linee, ad un certo punto spuntano di nuovo da sinistra e continuano verso destra e così via. Il perché di questo si trova nella dichiarazione; noi abbiamo dichiarato le variabili come int; int copre i valori da 2.147.483.648 a +2.147.483.647, ad ogni while il valore aumenta e quando supera il valore massimo riparte dal valore minimo e viceversa. La soluzione, molto semplice, sta nell introdurre una variabile, che io per abitudine chiamo myflag e inizializzarla con valore 0; successivamente nella while inseriremo una if del tipo If(myflag == 0) { codice E al di fuori della if cambieremo il valore di myflag cosicché la while si ripeta una volta sola. Il codice finale sarà: #include <allegro.h> void init(); void deinit(); int x = 30; int y = 30; int x2 = 90; int y2 = 90; int bianco = 0xffffff; int myflag = 0; int main() { init();

while (!key[key_esc]) { if (myflag == 0) { line(screen, x, y, x2, y2, bianco); x = x + 10; x2 = x2 + 10; myflag = 1; deinit(); return 0; END_OF_MAIN(). Abbiamo detto che in grafica in C si lavora sulle funzioni standard di allegro, vediamone altre 4 di base. Rect(output, x, y, x2, y2, colore); La sintassi è praticamente identica a quella di line(). Da questa funzione viene disegnato un rettangolo; le coordinate, x, y, x2, y2, sono le coordinate degli estremi della diagonale del rettangolo, sulla diagonale verranno costruiti i lati e si formerà la figura. Circle(output, x, y, raggio, colore); questa funzione disegna un cerchio. Le coordinate x e y sono le coordinate del centro, raggio è per l appunto una variabile che definisce il raggio del cerchio. Queste due funzioni disegnano appunto solo il contorno della figura, se si vuole ottenere un riempimento, bisogna utilizzare le funzioni rectfill() e circlefill() che hanno la stessa sintassi delle precedenti. Esempio:

#include <allegro.h> void init(); void deinit(); int x = 30; int y = 30; int x2 = 90; int y2 = 90; int bianco = 0xffffff; int rosso = 0xff0000; int blu = 0x0000ff; int verde = 0x00ff00; int giallo = 0xffff00; int raggio = 120; int myflag = 0; int main() { init(); while (!key[key_esc]) { if (myflag == 0) {line(screen, x, y, x2, y2, bianco); rect(screen, x + 40, y + 40, x2 + 180, y2 + 180, rosso); circle(screen, x + 460, y + 140, raggio, blu); rectfill(screen, x + 300, y + 320, x2 + 550, y2 + 380, giallo); circlefill(screen, x + 200, y + 300, raggio - 60, verde); myflag = 1; deinit(); return 0; END_OF_MAIN().

Che darà come risultato Con un po' di inventiva e immaginazione si possono trovare tutta una serie di disegni da fare. Un buon esercizio sarebbe quello di disegnare, ad esempio una scacchiera, con le pedine di dama. Ricordo che il fatto non sta nel dare delle coordinate numeriche ogni volta alle coordinate delle figure, ma trovare il giusto algoritmo che porta alla soluzione. Questo è il mio risultato.

Buon lavoro.:luxx:.