IspiCiosa
16-03-2008, 17:12
cliccate qui (http://www.dsi.unive.it/~mp/Homeworks/01.pdf)
ragazzi devo fare il secondo esercizio...
quello dello smile...
aiutatemi
ora io sono riuscito a disegnare lo smile ma non capisco come fare per colorarlo e per fare il poligono con la scritta...
come cavolo si fa??
questo è il codice che ho fatto fin ora:
main:
package javaapplication2;
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Color;
public class Main {
public static void main(String[] args) {
JFrame finestra = new JFrame();
Tela pannello = new Tela();
finestra.add(pannello);
finestra.setSize(600,300);
finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finestra.setVisible(true);
}
}
classe smile:
public class Smile {
//caratteristiche dell'oggetto
double xs, ys;
double dims;
// pone lo smile nella posizione 0, 0
public Smile ()
{
xs=0;
ys=0;
dims=1;
}
/** Costruttore , costruisce lo smile
* @param x coordinata x del punto in alto a sinistra
* @param y coordinata y del punto in alto a sinistra
* @param dimensione dimensione del quadrato contente lo smile
*/
public Smile (double xp, double yp, double dimensione) {
xs=xp;
ys=yp;
dims=dimensione;
}
/** rendering della faccina
* Per ottenere il rendering devo
* passare la ampiezza e la altezza massima
* della finestra dove disegnare
*
*
*/
public void draw (int xa, int ya, Graphics g) {
int x=(int) (xs * xa);
int y=(int) (ys * ya);
// per mantenere la faccina quadrata e magari dentro lo schermo
// prendo la dimensione minima
int dim= (int)(xa>ya?ya:xa);
g.drawOval( x, y, dim, dim ); //faccia
g.drawOval( x+dim/4, y+dim/4, dim/6, dim/4 ); //occhio sinistro
g.drawOval( x+5*dim/8, y+dim/4, dim/6, dim/4 ); //occhio destro
g.drawArc ( x+dim/4, y+dim/2, dim/2, dim/3, 0, -185); //bocca
}
/** stabilisce la posizione dello smile
* @param xp coordinata x
* @param yp coordinata y
*/
public void setPos (double xp, double yp) { xs=xp; ys=yp; }
/**dimensione dello smile
* @param dim dimensione della faccina
*/
public void setGrandezza (double dimensione) { dims=dimensione; }
/** Restituisce la dimensione dello smile
* @return dim grandezza dell'oggetto in pixel
*/
public double getGrandezza () { return dims;}
}
classe tela:
package javaapplication2;
import java.awt.Graphics;
import javax.swing.JPanel;
import java.awt.*;
public class Tela extends JPanel
{
Smile Damiano;
public Tela() { Damiano=new Smile();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int x=getWidth();
int y=getHeight();
Damiano.draw(x,y,g);
}
}
come mi devo comportare ora per fare il resto??
ragazzi devo fare il secondo esercizio...
quello dello smile...
aiutatemi
ora io sono riuscito a disegnare lo smile ma non capisco come fare per colorarlo e per fare il poligono con la scritta...
come cavolo si fa??
questo è il codice che ho fatto fin ora:
main:
package javaapplication2;
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Color;
public class Main {
public static void main(String[] args) {
JFrame finestra = new JFrame();
Tela pannello = new Tela();
finestra.add(pannello);
finestra.setSize(600,300);
finestra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
finestra.setVisible(true);
}
}
classe smile:
public class Smile {
//caratteristiche dell'oggetto
double xs, ys;
double dims;
// pone lo smile nella posizione 0, 0
public Smile ()
{
xs=0;
ys=0;
dims=1;
}
/** Costruttore , costruisce lo smile
* @param x coordinata x del punto in alto a sinistra
* @param y coordinata y del punto in alto a sinistra
* @param dimensione dimensione del quadrato contente lo smile
*/
public Smile (double xp, double yp, double dimensione) {
xs=xp;
ys=yp;
dims=dimensione;
}
/** rendering della faccina
* Per ottenere il rendering devo
* passare la ampiezza e la altezza massima
* della finestra dove disegnare
*
*
*/
public void draw (int xa, int ya, Graphics g) {
int x=(int) (xs * xa);
int y=(int) (ys * ya);
// per mantenere la faccina quadrata e magari dentro lo schermo
// prendo la dimensione minima
int dim= (int)(xa>ya?ya:xa);
g.drawOval( x, y, dim, dim ); //faccia
g.drawOval( x+dim/4, y+dim/4, dim/6, dim/4 ); //occhio sinistro
g.drawOval( x+5*dim/8, y+dim/4, dim/6, dim/4 ); //occhio destro
g.drawArc ( x+dim/4, y+dim/2, dim/2, dim/3, 0, -185); //bocca
}
/** stabilisce la posizione dello smile
* @param xp coordinata x
* @param yp coordinata y
*/
public void setPos (double xp, double yp) { xs=xp; ys=yp; }
/**dimensione dello smile
* @param dim dimensione della faccina
*/
public void setGrandezza (double dimensione) { dims=dimensione; }
/** Restituisce la dimensione dello smile
* @return dim grandezza dell'oggetto in pixel
*/
public double getGrandezza () { return dims;}
}
classe tela:
package javaapplication2;
import java.awt.Graphics;
import javax.swing.JPanel;
import java.awt.*;
public class Tela extends JPanel
{
Smile Damiano;
public Tela() { Damiano=new Smile();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int x=getWidth();
int y=getHeight();
Damiano.draw(x,y,g);
}
}
come mi devo comportare ora per fare il resto??