|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
[JAVA] Help disegnare poligono scritta e smile colorati
cliccate qui
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: Codice:
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);
}
}
Codice:
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;}
}
Codice:
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);
}
}
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
up
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 1218
|
up
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Non so se devi fare le classi esattamente in quel modo ma io personalmente farei 1 sola classe che estende JPanel e che si occupa di realizzare l'intero disegno. Poi a quel punto basta solo usare le API di Java 2D per visualizzare linee, cerchi, testo, ecc....
Domanda: il disegno deve essere di dimensione prefissata o deve potersi ridimensionare in base alla dimensione del contenitore??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:13.



















