MokaByte Numero 04 - Gennaio 1997

 
Grafica vettoriale con Java 
parte I
 
di
Domenico De Riso
molto da rifare...


Da questo numero verranno analizzati alcuni methods della classe awt.Graphics e precisamente quelli di "grafica vettoriale" come il disegno di linee, circonferenze ed archi. Essi sono di importanza fondamentale perchè utili alla rappresentazione di qualsiasi grafico o semplice animazione sulle applet.
Degli altri methods della awt.Graphics ne sta già discutendo Massimo Carli con gli articoli dedicati all'Image Processing. I methods di cui voglio discutere sono pochi. Ma c'è da dire molto sulla loro NON versatilità, e da fare molto sulla loro espansione. Molte sono le applet scritte, ma per lo più con fini di carattere informatico: gestione in Java di computers in rete o di posta elettronica ecc., ma poche quelle utili alle persone che non si occupano di reti o di mailing ma semplicemente della funzione primaria: LA RAPPRESENTAZIONE GRAFICA DELLE INFORMAZIONI sulla Rete.


Dunque, quello che voglio presentare, a cominciare da questo numero, è la grafica vettoriale, dalla semplice grafica bidimensionale, tridimensionale fino ad accenni di quella multidimensionale e soprattutto all’espansione di quella attualmente implementata.

La grafica vettoriale (per l'utente medio), è rimasta sempre nell’ombra in particolar modo da quando i computers fanno uso di interfaccie grafiche come Windows. La causa è da attribuire soprattutto al fatto che "grafica vettoriale" significa per lo più CAD (Computer Aided Design tradotto Disegno Aiutato dal Computer) e CAD è, purtroppo, molto sinonimo di AutoCAD che per anni è stato uno strumento escluso da Windows e inesistente su Apple e sono veramente poche le persone che lo sanno utilizzare, ma molto ricercate. Anzi, chi lo "smanetta" è praticamente già fuori dalle liste di disoccupazione! Ormai tutte le industrie e tecnici si servono del CAD e i plotter sono le uniche macchine che riescono a portare fuori dal computer uno schema tecnico. Su Internet si fa ancora fatica per rappresentare uno schema tecnico.

Immaginate di essere un’azienda prodruttrice di box per doccia. Pubblicizzate, naturalmente il prodotto su Internet. Quindi pretendete che il vostro provider o chi vi cura le pagine inserisca lo schema tecnico di assemblaggio sull’HTML relativo.
Secondo voi in che formato potrà essere visualizzato lo schema tecnico? In GIF? Sì, è possibile, ma deve essere un’immagine molto grande affinchè non venga perduta la qualità del disegno, e le immagini molto grandi occupano molti Kilobytes e molti Kilobytes occupano molto tempo per il caricamento e "il molto tempo" precede spesso un Netscape STOP! Inoltre il disegno che le immagini di questo tipo rappresentano non ha la possibilità di essere zoomato o traslato.

Da quando navigo e "incremento" le informazioni di Internet, uno dei primi problemi che ho incontrato è proprio la presentazione di schemi tecnici sul web. Netscape e Internet Explorer e altri browser non hanno problemi per la visualizzazione di immagini di tipo GIF, TIF o JPG, ma nessuno di questi ha la capacita’ di mostrare un disegno vettoriale di tipo DXF o HPGL o un formato "inventato", cioè un disegno le cui informazioni siano espresse in maniera geometrica. Certo! Esistono plug-in potentissimi come Acrobat Reader che visualizza immagini PDF, ma bisogna downloadarlo dal sito di Adobe ed è 3.5Mb e non tutti, e mi riferisco agli utenti semplici, hanno la pazienza e soprattutto la "coscienza" di scaricarlo.

Sono convinto che la grafica vettoriale in Java per Internet diventerà uno strumento di comunicazione utile soprattutto alla simulazione di processi scientifici e tecnici che, altrimenti, potrebbe essere possibile solo con lo scambio "postale classico" di videocassette! Infatti, piccole animazioni sono facilissime da realizzare con Java, mentre l’alternativa di cui i browser oggi dispongono è solo di tipo OpenGL o VRML che pretendono sempre il dowload di plug-in extra, oppure accontentarsi del classico download di un qualche file AVI o MPEG.

Perciò ritengo opportuno che si faccia un pò di informazione su questo strumento un pò trascurato e che può essere utilissimo a chi prepara pagine e programmi per la Rete.
Comincerò con i semplici comandi che Java e le API dispongono, fino alla realizzazione di una qualche simulazione tecnico-scientifica. A dire il vero le API non contengono poi tante possibilità di disegno.

Dunque, ecco un elenco di lacune vettoriali di Java ed API che (spero) risolveremo insieme:

Concludendo: methods come drawLine(...), drawPolygon(..) drawRect(...) e ... anche il nuovo drawPolyline(...) potrebbero anche non esistere e drawOval(...) e drawArc(...) devono essere assolutamente migliorati.

A questo punto non mi resta che riaffermare la poca versatilità delle doti di grafica vettoriale di Java.
Nei futuri articoli cercheremo di trattare i "punti" nel modo descritto e costruiremo i methods utili ad effettuare spostamenti e rotazioni ... così disegnare con Java sarà più facile.

Vi anticipo che in www.javasoft.com stanno tramando le nostre stesse idee! (argomenti Java2D e Java3D) Ma non saranno pronti per almeno un anno, infatti si prevede la loro presentazione verso la fine del 1997 e per Java2D addirittura TBD (To Be Determined). Ci stanno copiando! 
 
 
 
 

 

MokaByte rivista web su Java

MokaByte ricerca nuovi collaboratori
Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it