Newsgroup: it.comp.os.linux.development
Titolo: Linguaggio C: come siamo messi a grafica?

Salve,
dovrei aggiungere una stupidissima interfaccia grafica ad un programmino che ho
scritto:
Il C supporta istruzioni grafiche?
Quali sono le possibili soluzioni?
Grazie a tutti
-- 
Posted from 
net145-162.mclink.it
 [195.110.145.162] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Quali sono le possibili soluzioni?
Tante, pero' prima dicci se vuoi fare grafica in console, o per X, nel qual
caso, per quale desktop manager, o se vuoi una applicazione generica.
Lucido la sfera di cristallo, e ti propongo GTK, o in alternativa QT, o
VDKBuilder, o wXwindows, o ...   
-- 
           |Save our planet!
  Ciao     |Save wildlife;
  roberto  |For your E-MAIL use only recycled Bytes !!
           |roberto poggi  
rpo...@softhome.net

 VDKBuilder, o wXwindows, o ...   
Allora, tento di rispondere:
come desktop manager utilizzo il KDE, anche se il mio programma intendo
lanciarlo sempre da riga di
comando (cioč, apro una finestra console e digito il comando).
Taglio la testa al toro e ti dico cosa fa il programma:
č una implementazione di un agente intelligente immerso in un ambiente
concepito come una matrice quadrata
di interi.
L'agente ha il compito di muoversi all'interno dell'ambiente evitando gli
ostacoli.
Vorrei far visualizzare graficamente al programma la matrice ambiente + agente
in modo da avere una visione
molto piů diretta degli spostamenti dell'agente stesso durante la sua azione.
Grazie. 
-- 
Posted from 
net145-172.mclink.it
 [195.110.145.172] 


 molto più diretta degli spostamenti dell'agente stesso durante la sua azione.
Per un semplice output non dovresti aver bisogno di un toolkit grafico
(che gestisce bottoni, menu, i/o...).
Massimiliano

 (che gestisce bottoni, menu, i/o...).
Ok, consentitemi di fare la domanda in modo più diretto:
come faccio a disegnare linee, punti, figure geometriche, gestire colori, etc
tramite un programma
in linguaggio C?
Da quello che ho capito dalle precedenti risposte, ho bisogno delle librerie
giuste:
quali sono queste librerie?
come faccio a sapere che non le abbia già installate?
esiste un manuale che possa consultare per il loro utilizzo?
Ciao e grazie
-- 
Posted from 
net145-182.mclink.it
 [195.110.145.182] 


 librerie giuste: quali sono queste librerie?
Le xlibs.  Altro non ti so dire, non ho fatto niente di simile in C.
Massimiliano


Le Xlibs non si usano mai da sole...
QT (KDE)/ GTK (GOME) / Motif ecc. ecc.

 QT (KDE)/ GTK (GOME) / Motif ecc. ecc.
Davvero?  Allora potrai senz'altro dirmi quali tra questi viene usato
da programmi come xfig o plaympeg.
Massimiliano


xfig usa gli athena widgets, un widget set precedente a Xt/Xm creato dal
MIT.
Quello che intendevo dire e' che le xlib sono solo il layer base di
accesso alla grafica e che per creare interfacce utente in maniera
semplice e omogenee con le applicazioni grafiche a standard CUA (Common
User Access) occorre utilizzare librerie di widgets (widget sets) come
ad es. gtk o qt o altri.
Chiunque e' liberissimo di realizzare la sua libreria di oggetti grafici
(menu, bottoni ecc. ecc.) sotto X senza utilizzare nient'altro che le
xlib.
ciao,
Roberto

 accesso alla grafica e che per creare interfacce utente in maniera
E quello che intendevo dire io e` che al nostro amico, che non intende
creare un interfaccia grafica bensi` una semplice canvas di output
(non diversamente da plaympeg, che percio` citavo), non servono
toolkit grafici che gestiscono input e widgets e aggiungerebbero solo
overhead.
Ma capisco che nel frattempo l'argomento da cui e` partito il discorso
si sia potuto perdere. :-)
Massimiliano

 etc tramite un programma in linguaggio C?
Avrai capito che il C di per se' non sa nulla della grafica. Bisogna
avvalersi di apposite librerie oppure di programmi esterni.
Ci sono vari modi:
- Usando X Window: libreria xlib (che permette appunto di disegnare testo,
punti, linee e poco piu' di questo; niente bottoni, menu, scroll bar, ecc.
che devono essere creati dal programma); qualche facilitazione avvalendosi
delle librerie Motif, GTK o Qt. Strada perigliosa.
- Usando la libreria SVGAlib che disegna direttamente sulla scheda VGA:
orrore e raccapriccio (mai fatto).
- Generando le immagini con le apposite librerie grafiche (come gd),
che ti generano direttamente PNG, GIF, JPEG, ecc. (mai fatto).
- Usando un programma come fly (
http://www.unimelb.edu.au/fly/fly.html
):
con popen() gli generi un input in un semplice linguaggio apposito,
e lui spara fuori in output una GIF, che puoi salvare o visualizzare
con altri programmi (fork() + exec() di xv, xloadimage, ee, ecc.) che
poi ti permettono di manipolare l'immagine e di salvarla in vari formati.
Soluzioni alternative al C puro:
- Usa Java al posto del C: sintassi simile, supporto oggetti,
multipiattaforma, predisposizione per il web (applet).
- Usa Tcl/Tk e i suoi potenti canvas: facile, sviluppo rapido della
interfaccia, puoi avere un programma completo di interfaccia in poche
decine di righe.
- Usa il C ma con chiamate alle librerie del Tcl/Tk per la gestione
della interfaccia e della grafica (mai fatto).
Questo e' quello che mi viene in mente.
Ciao,
// Umberto Salsi
//
// 
http://digilander.iol.it/salsi
 <-- GnuPG key available here!
// Key fingerprint = B957 FB00 10F5 A770 4A26  2D80 BE2C F6CD 77E9 29AE

 colori, etc tramite un programma in linguaggio C?
La risposta di Umberto a proposito di popen() e fly mi ha fatto venire
in mente un'altra possibilita`: drawtool.  Dovresti trovarlo su SAL e
dalla descrizione di Umberto direi che e` come fly, cioe` accetta
comandi tramite stdin per disegnare semplici figure geometriche, ma
esce a schermo invece che su file.  Potrebbe essere l'ideale per
tagliar la testa al toro.
Massimiliano

 Grazie. 
Per una cosa del genere posso suggerire le ncurses? :P
Penso che per lo scopo siano più che sufficienti se non vuoi farne un futuro 
videogioco e sono facili e rapide da usare.