Pagina 1 di 1

Java Faccina.. Newbie..

Inviato: giovedì 2 ottobre 2008, 18:04
da Quasar88
Ciao a tt..

Ho appena cominciato il corso java.. Vengo dal linguaggio C..

Ho da fare questo esecizio:
http://www.dsi.unive.it/~mp/esercizi.html

Ora nn vi chiedo di darmi la soluzione.. X il disegno della faccina ci sto mettendo una vita.. Per farlo disegno cerchi per la faccia e gli occhi rettangolo x il fumetto e un triangolo sempre per il fumetto..
Sto diventando pazzo per raggruppare le figure cn le coordinate in modo da fare venire fuori stà faccina..

Ecco il mio codice:

import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;

class Face extends JComponent {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;

Ellipse2D.Double face = new Ellipse2D.Double(100,100,100,100);
g2.setColor(Color.YELLOW);
g2.fill(face);
g2.draw(face);

Ellipse2D.Double eyes = new Ellipse2D.Double(130,130,10,10);
g2.draw(eyes);
g2.setColor(Color.BLUE);
g2.fill(eyes);
g2.translate(40,0);
g2.fill(eyes);
g2.draw(eyes);

Rectangle r = new Rectangle(180,80,100,50);
g2.draw(r);
g2.setColor(Color.RED);
g2.fill(r);


}
}

class Smile {
public static void main(String[] args) {
JFrame frame = new JFrame();

frame.setSize(400,400);
frame.setTitle("Cerchio");;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Face f = new Face();
frame.add(f);
frame.setVisible(true);

}
}

E' incompleto.. Ho capito xò cm si fà ma è da impazzire. esiste qualke altro modo più veloce per farlo almeno per trovare prima le coordinate..?
O x fare i bordi..

Grazie

Re: Java Faccina.. Newbie..

Inviato: giovedì 2 ottobre 2008, 18:13
da 369
Non è che devi semplicemente aprire l'immagine della faccina? Io non lo vedo specificato...anche se è un pò troppo facile (rotfl)

Re: Java Faccina.. Newbie..

Inviato: giovedì 2 ottobre 2008, 18:38
da Quasar88
369 ha scritto: Non è che devi semplicemente aprire l'immagine della faccina? Io non lo vedo specificato...anche se è un pò troppo facile (rotfl)
L'ho pensato anch'io a parte ke nn lo saprei ancora fare.. Xò dice "è disegnata una smiley".. Quindi immagino ke debba crearla.. Qualke consiglio per farlo..??

I bordi cm diavolo si fanno agli oggetti..?? IO ho fatto un cerchio blu grande e uno giallo sopra:-D..

Re: Java Faccina.. Newbie..

Inviato: giovedì 2 ottobre 2008, 20:15
da Zoff
Quasar88 ha scritto:
369 ha scritto: Non è che devi semplicemente aprire l'immagine della faccina? Io non lo vedo specificato...anche se è un pò troppo facile (rotfl)
L'ho pensato anch'io a parte ke nn lo saprei ancora fare.. Xò dice "è disegnata una smiley".. Quindi immagino ke debba crearla.. Qualke consiglio per farlo..??

I bordi cm diavolo si fanno agli oggetti..?? IO ho fatto un cerchio blu grande e uno giallo sopra:-D..
Non ricordo che ci siano metodi particolari per i bordi ma puoi benissimo far eil bordo di un cerchio con una circonferenza...

Disegni il cerchio con drawFillOval() e il bordo con drawOval()....

Bello come esercizio se la devi disegnare d acodice, o meglio, più che bello simpatico :D

Re: Java Faccina.. Newbie..

Inviato: giovedì 2 ottobre 2008, 20:50
da Quasar88
Zoff ha scritto:
Quasar88 ha scritto:
369 ha scritto: Non è che devi semplicemente aprire l'immagine della faccina? Io non lo vedo specificato...anche se è un pò troppo facile (rotfl)
L'ho pensato anch'io a parte ke nn lo saprei ancora fare.. Xò dice "è disegnata una smiley".. Quindi immagino ke debba crearla.. Qualke consiglio per farlo..??

I bordi cm diavolo si fanno agli oggetti..?? IO ho fatto un cerchio blu grande e uno giallo sopra:-D..
Non ricordo che ci siano metodi particolari per i bordi ma puoi benissimo far eil bordo di un cerchio con una circonferenza

...

Disegni il cerchio con drawFillOval() e il bordo con drawOval()....

Bello come esercizio se la devi disegnare d acodice, o meglio, più che bello simpatico :D

Ho capito il bordo cm circonferenza giusto..?? Speravo mi diceste un modo per calcolare bene coordinate di occhi bocca ecc.. Invece bisogna fare tt in maniera artigianaleXD

Re: Java Faccina.. Newbie..

Inviato: venerdì 3 ottobre 2008, 11:43
da Quasar88
Dopo lungo bestemmiare ho finalmente finito sta faccina..

Siccome nessuno m ha saputo dire un modo più veloce(forse nn cè) ho fatto cn quello ke sapevo.. Ecco il codice completo:

import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.Polygon;

class Face extends JComponent {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;

Color LIGHTBLUE = new Color(0.0F,0.4F,1.0F);
Color LIGHTORANGE = new Color(1.0F,0.7F,0.5F);
Color DARKORANGE = new Color(0.8F,0.7F,0.5F);

//bordo faccia
Ellipse2D.Double f = new Ellipse2D.Double(95,95,110,110);
g2.setColor(LIGHTBLUE);
g2.fill(f);
g2.draw(f);

//faccia
Ellipse2D.Double face = new Ellipse2D.Double(100,100,100,100);
g2.setColor(LIGHTORANGE);
g2.fill(face);
g2.draw(face);

//occhi
Ellipse2D.Double eye1 = new Ellipse2D.Double(120,130,20,20);
g2.draw(eye1);
g2.setColor(LIGHTBLUE);
g2.fill(eye1);

Ellipse2D.Double eye2 = new Ellipse2D.Double(160,130,20,20);
g2.draw(eye2);
g2.setColor(LIGHTBLUE);
g2.fill(eye2);

//pupille
Ellipse2D.Double e1 = new Ellipse2D.Double(125,135,10,10);
g2.draw(e1);
g2.setColor(DARKORANGE);
g2.fill(e1);

Ellipse2D.Double e2 = new Ellipse2D.Double(165,135,10,10);
g2.draw(e2);
g2.setColor(DARKORANGE);
g2.fill(e2);

//fumetto
Rectangle r = new Rectangle(210,70,120,50);
g2.draw(r);
g2.setColor(Color.MAGENTA);
g2.fill(r);

Polygon t = new Polygon();
t.addPoint(250,100);
t.addPoint(300,100);
t.addPoint(210,150);
g2.draw(t);
g2.setColor(Color.MAGENTA);
g2.fill(t);

//messaggio
g2.setColor(Color.WHITE);
g2.drawString("Hi There", 242, 100);
g2.setColor(Color.BLUE);
g.drawArc(125,130,50,50,220,360-260);

}
}

class Smile {
public static void main(String[] args) {
JFrame frame = new JFrame();

frame.setSize(500,500);
frame.setTitle("Cerchio");;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Face f = new Face();
frame.add(f);
frame.setVisible(true);

}
}