Newsgroup: it.comp.java
Titolo: [2D] grafici in Java

Ciao a tutti, mi trovo per la prima volta a dover usare le API 2D di java
Il mio scopo e' fare un grafo (istogramma) di una serie di valori (e di cosa
altrimenti? :-P)
Ho trovato un paio(in realta' molto di piu', ma non mi sebra il caso di
stilare la lista della spesa ;-) ) di difficolta':
1) Come faccio a spostare l'origine degli assi? ovvero java mette il punto
(0,0) in alto a sinistra, mentre a me servirebbe in basso a sinistra...come
consuetudine in matematica!
2) Mi piacerebbe disegnare una griglia per rendere piu' leggibile il grafo,
tipo foglio a quadretti, esiste un trucchetto x fare qualcosa del genere?
Grazie mille in anticipo!
PS: conoscete qualche bel sito che tratti l'argomento grafica 2D in Java?
Icaro
--
"...Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno
sprovveduto che non lo sa e la inventa...".
             Albert Einstein

 tipo foglio a quadretti, esiste un trucchetto x fare qualcosa del genere?
Puoi fare un metodo che disegna su una BufferedImage le scale x e y e la
griglia, poi quando devi visualizzare le varie colonne, disegni prima il
buffered image che così cancella i vecchi disegni e poi le colonne.
Per disegnare una griglia usa BasicStroke, ti permette di scegliere il tipo
di tratteggio.
Ciao.

 Sai in quanti siamo a fare sempre la stessa domanda?
se vi interessa date un'occhiata qua..
http://www.epic.noaa.gov/java/sgt/index.html
SGT è un package che permette di creare grafici in Java con relativa
semplicità, e non è troppo difficile da usare...
Matte

 wrote in message
news:ae9pc5$4n5q$1...@stargate1.inet.it...
|
| Cominciamo :
|
| > PS: conoscete qualche bel sito che tratti l'argomento grafica 2D in
Java?
|
| Ahhahahah!!! Eheheheeehhh! Ihihihihhihh!!!!!
cavoli...non e' una bella premessa :-(
| > 1) Come faccio a spostare l'origine degli assi? ovvero java mette il
punto
|
| Bastano un paio di sottrazioni. Tanto se non le fai tu, le fa lui. Il
| monitor del PC ha fisicamente l'origine in alto a sinistra.
| Ti fai un metodino che ti ricalcola le coordinate e via.
Qui avevi ragione , bastava sottrarre all'altezza della finestra l'ordinata
del punto.
Ci sono arrivato dopo il tuo rimprovero :-)
| > 2) Mi piacerebbe disegnare una griglia per rendere piu' leggibile il
| grafo,
| > tipo foglio a quadretti, esiste un trucchetto x fare qualcosa del
genere?
|
| Puoi fare un metodo che disegna su una BufferedImage le scale x e y e la
| griglia, poi quando devi visualizzare le varie colonne, disegni prima il
| buffered image che così cancella i vecchi disegni e poi le colonne.
| Per disegnare una griglia usa BasicStroke, ti permette di scegliere il
tipo
| di tratteggio.
Qui mi sa che mi ci devo mettere un pochino....ora faccio qualche tentativo
Grazie 1000
PS: se hai altri suggerimenti, beh...sarebbero bene accetti ;-P

Ti fai un metodino che ti ricalcola le coordinate e via.
[CUT]
Oppure setti la opportuna AffineTransform (uso un po' riduttivo, ma 
"pulito") sull'oggetto Graphics2D: attenzione ad aggiornarla ad ogni 
resize :-)
Comunque esistono pacchetti già fatti che fanno grafici... :-)
HTH
-- 
Ciao
	Fabrizio C.

 wrote in message
news:MPG.1772ae507...@news.cis.dfn.de...

Ci avevo provato inizialmente...ma non sono riuscito ad effettuare un 'flip'
al mio grafo....mi e' risultato piu' semplice con il paio ri sottrazioni di
cui parlava Telespalla :-)
Tu ci sei riuscito con AffineTransform? Se si come?
Grazie
Icaro

Tu ci sei riuscito con AffineTransform? Se si come?
Sě, e ci puoi riuscire anche tu.
Molto importante: cosa sai della "teoria" che ci sta dietro?
Facciamo cosě: tu mi dici come hai provato e io ti dico dove hai 
sbagliato ;-)
In passato se ne era parlato: non ricordo se avevo postato anche questa 
parte di codice, ma puoi cercare su
http://groups.google.com


 wrote in message
news:MPG.1772bd9fd...@news.cis.dfn.de...
| On Thu, 13 Jun 2002 14:59:52 +0200, Icaro wrote:
|
| >Ci avevo provato inizialmente...ma non sono riuscito ad effettuare un
'flip'
| >al mio grafo....mi e' risultato piu' semplice con il paio ri sottrazioni
di
| >cui parlava Telespalla :-)
|
| Certo che č piů semplice (anche se io direi... "intuitivo"). :-)
| In effetti č un po' un overkill usare le AffineTransform _solo_ per
| questo, ma siccome l'appetito vien mangiando...
| Pensa di fare ad es. uno scalamento senza (quasi) dover cambiare il tuo
| codice, ma cambiando solo la trasformazione.
per i ridimensionamenti funge anche la sottrazione, visto che in realta' io
ridisegno tutto il grafo he he ... una zozzeria vero?
| (Guarda gli esempi nella cartella demo del tuo jdk)
A quale ti riferisci?
| >Tu ci sei riuscito con AffineTransform? Se si come?
|
| Sě, e ci puoi riuscire anche tu.
bastardo :-)
| Molto importante: cosa sai della "teoria" che ci sta dietro?
Diciamo che mi sono tuffato nel 2D da martedi' mattina....una vita quasi
vero? :-P
| Facciamo cosě: tu mi dici come hai provato e io ti dico dove hai
| sbagliato ;-)
Ho provato a fare delle rotazioni del mio grafo usando il metodo rotate, ma
poi mi sono reso conto di essere 'fuori strada' visto che facendo cosi' non
avrei mai ottenuto il mio risultato, e guardando le altre trasformazioni, mi
sembra che non ci fosse nulla al caso, mancando un operazione di
'flip'....credo che il risultato sia possibile andando a lavorare con la
matrice di trasformazione che sta' dietro alle affineTrasform, ma in
matematica non sono mai stato 'uno bravo' :)
| In passato se ne era parlato: non ricordo se avevo postato anche questa
| parte di codice, ma puoi cercare su
| 
http://groups.google.com
Ho cercato prima di postare, ma per la maggior parte ho trovato richieste di
tool che facessero grafici e non di 'come farli' :-(
Ora riprovo.
Grazie!
PS: ora mi sto' incasinando per quel che riguarda l'inserimento di una
griglia :-P
PPS: vorrei far ridisegnare il grafo sul ridimensionamento della finestra,
come becco l'evento? ridefinendo il metodo print() mi si genera una
bruttissima eccezione... :-/

bruttissima eccezione... :-/
Ahhh, ma allora č meglio che ti leggi il tutorial cosě eviti di 
brancolare nel buio...
http://java.sun.com/docs/books/tutorial/
http://java.sun.com/docs/books/tutorial/uiswing/index.html
http://java.sun.com/docs/books/tutorial/2d/index.html


 bruttissima eccezione... :-/
AHHHHHHHHH!!!!!!!!!!!! ;-)
Devi ridefinire il metodo protected paintComponet(Graphics g) (se usi SWING)
Su questo argomento google è stragonfio di tutte le volte che ho/abbiamo
spiegato tutti icasi per gestire i disegni/immagini su un
pannello/componente, sia in AWT che SWING.
Ciao e buona ricerca (cerca il mio nick abbinato a cose tipo :"disegnare su
un pannello" etc,).

 wrote in message
news:MPG.1772cc153...@news.cis.dfn.de...
| On Thu, 13 Jun 2002 16:13:06 +0200, Icaro wrote:
|
| >per i ridimensionamenti funge anche la sottrazione, visto che in realta'
io
| >ridisegno tutto il grafo he he ... una zozzeria vero?
|
| "Potrebbe" esserlo :-)
|
| >A quale ti riferisci?
|
| Hei, potresti anche guardarli un po', no?
| Comunque Java2D ed in particolare la tab Transforms: strano vero?
In realta' l'avevo visto....ma mi e' sembrato troppo complesso come punto di
partenza ...
| >bastardo :-)
|
| Piano con le parole: anche le faccine hanno un limite...
Scusami, hai perfettamente ragione; in effetti mi rendo conto che abbia
potuto darti fastidio, ma e' un espressione che con i miei amici uso spesso
senza darle un senso 'offensivo', ma questo non mi giustifica.
| >| Molto importante: cosa sai della "teoria" che ci sta dietro?
| >
| >Diciamo che mi sono tuffato nel 2D da martedi' mattina....una vita quasi
| >vero? :-P
|
| Io parlavo di geometria...
Sigh...tra me e la matematica c'e' un antipatia a pelle :-(
| >e guardando le altre trasformazioni, mi
| >sembra che non ci fosse nulla al caso, mancando un operazione di
| >'flip'....credo che il risultato sia possibile andando a lavorare con la
| >matrice di trasformazione che sta' dietro alle affineTrasform,
|
| Sei sulla strada giusta.
Alla fine mi sono accorto che basta scalare l'immagine rispetto all'asse X
Ma continuo a pensare che le trasformazioni siano veramente scomode e poco
intuitive...Che dici, faccio come la volpe con l'uva? :)
| Ahhh, ma allora č meglio che ti leggi il tutorial cosě eviti di
| brancolare nel buio...
Ho letto il tutorial, ma come aveva gia' detto Telespalla, non mi pare che
sia proprio cosi' chiaro, almeno x le 2D
Credo che in realta' mi manchi un po' di esperienza....e di tempo per farla
:(
PS: come mai sei cosi' bravo con il 2d? ho letto molti dei tuoi post
precedenti, e mi sembri molto preparato in materia!

 Sono due cicli banalissimi che disegnano delle righe verticali ...
perche' 2?. Ne basta uno solo secondo me ... ah, i maschi e l'ottimizzazione
del codice ... :-)

Un grglia è fatta di linne orizzontali e verticali e spesso le y e le x
hanno scale differenti.
Puodarsi che la mia poca preparazione matematica non mi permetta di vedere
altre strade. Sono curioso. Se hai tempo di illustrarmi la tua idea te ne
sarei grato.
Ciao.

del codice ... :-)
Come sei criptica... ;-)
Racconta un po' come lo faresti e quale sarebbe il vantaggio.
-- 
Ciao
	Fabrizio C.