donderdag 7 april 2011

Drawing a filled polygon example.

Here is how you draw a filled polygon with Java.

 
import java.applet.Applet;
import java.awt.*;
public class Polygon1 extends Applet {
  public void paint (Graphics g) {
    int[] XArray = {20, 160, 120, 160, 20, 60};
    int[] YArray = {20, 20, 90, 160, 160, 90};
    g.fillPolygon (XArray, YArray, 6);
  }
}

With Polygons you can make games like Asteroids.

4 opmerkingen:

  1. public static void main(String[] args) {
            ExempleTractamentFitxer exemple = new ExempleTractamentFitxer();
           
            exemple.escriu();
            exemple.llegeixParells();
            exemple.llegeixTot();
        }   

    BeantwoordenVerwijderen
  2.    
       
        /*
         * Mètodes genèrics
         */
        public void saltaAfila(RandomAccessFile rFile, int fila)
    throws IOException{
            rFile.seek(fila*MIDA_FILA);
        }
       
        public void saltaAlIniciDeFila(RandomAccessFile rFile)
    throws IOException{
            long pos = rFile.getFilePointer();
            pos = pos - pos % MIDA_FILA;  //EXACTAMENT AL INICI DE LA FILA
                   
            rFile.seek(pos);
        }
       
        public void saltaASeguentFila(RandomAccessFile rFile)
    throws IOException{
            long pos = rFile.getFilePointer() -1;
            pos = pos - pos % MIDA_FILA + MIDA_FILA;  //EXACTAMENT AL INICI DE LA FILA SEGUENT
                   
            rFile.seek(pos);
        }
       
       
        public void saltaAColumna(RandomAccessFile rFile, int columna)
                                                              throws IOException{
            rFile.seek(patroColumnes[columna]);
        }
       
        public String obteText(RandomAccessFile rFile)throws IOException{
            String text="";
            char c = rFile.readChar();
            while (c != 0) {
                text += c;
                c = rFile.readChar();
            }
            return text;        
        }
       
        public boolean esFinal(RandomAccessFile rFile) throws IOException{
            return rFile.length()==rFile.getFilePointer();
        }
       
        public long numFiles(RandomAccessFile rFile) throws IOException{
            return rFile.length()%MIDA_FILA;
        }
       
        public void escriuText(RandomAccessFile rFile, String text)
    throws IOException{
            for(int i=0; i0){
                            c1 = scanner.nextLine();
                            c2 =scanner.nextLine();
    edat = scanner.nextInt();                

                            insereixFilaAlFinal(rFile, nom, c1, c2, edat);
                    }                      
                }while (nom.length()>0);
               
                rFile.close();
               
            } catch (IOException ex) {
    System.out.println("ERRROR");
            }
        }
       
       
        public void llegeixParells(){
            RandomAccessFile rFile = null;
            long files;
       
            try {
               
                rFile = new RandomAccessFile(file, "rw");
               
                files = numFiles(rFile);
               
                for(int i=0; i<files; i+=2){
                    System.out.print(i);                
                    System.out.print(": ");                
                    System.out.print(obteNom(rFile, i));
                    System.out.print("(");                
                    System.out.print(obteEdat(rFile, i));
                    System.out.println(")");                
                }
               
                rFile.close();
               
            } catch (IOException ex) {
                System.out.println("ERRROR");
            }
        }

       
        public void llegeixTot(){
            RandomAccessFile rFile = null;
       
            try {
               
                rFile = new RandomAccessFile(file, "rw");
                rFile.seek(0);
               
                while(!esFinal(rFile)){
                    System.out.print("- ");                
                    System.out.print(obteText(rFile));
                    saltaAColumna(rFile, EDAT);
                    System.out.print(" (");                
                    System.out.print(rFile.readInt());
                    System.out.println(")");                
                }
               
                rFile.close();
               
            } catch (IOException ex) {
                System.out.println("ERRROR");
            }
        }

       
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            ExempleTractamentFitxer exemple = new ExempleTractamentFitxer();
           
            exemple.escriu();
            exemple.llegeixParells();
            exemple.llegeixTot();
        }   
    }

       
        /**
         * @param args the command line arguments
         */

    BeantwoordenVerwijderen
  3.     public void escriu(){
            Scanner scanner = new Scanner(System.in);
            RandomAccessFile rFile = null;
            String nom;
            String c1;
            String c2;
            int edat;
       
            try {
               
                rFile = new RandomAccessFile(file, "rw");
               
                do{
                    nom = scanner.nextLine();
                    if(nom.length()>0){
                            c1 = scanner.nextLine();
                            c2 =scanner.nextLine();
    edat = scanner.nextInt();                

                            insereixFilaAlFinal(rFile, nom, c1, c2, edat);
                    }                      
                }while (nom.length()>0);
               
                rFile.close();
               
            } catch (IOException ex) {
    System.out.println("ERRROR");
            }
        }
       
       
        public void llegeixParells(){
            RandomAccessFile rFile = null;
            long files;
       
            try {
               
                rFile = new RandomAccessFile(file, "rw");
               
                files = numFiles(rFile);
               
                for(int i=0; i<files; i+=2){
                    System.out.print(i);                
                    System.out.print(": ");                
                    System.out.print(obteNom(rFile, i));
                    System.out.print("(");                
                    System.out.print(obteEdat(rFile, i));
                    System.out.println(")");                
                }
               
                rFile.close();
               
            } catch (IOException ex) {
                System.out.println("ERRROR");
            }
        }

       
        public void llegeixTot(){
            RandomAccessFile rFile = null;
       
            try {
               
                rFile = new RandomAccessFile(file, "rw");
                rFile.seek(0);
               
                while(!esFinal(rFile)){
                    System.out.print("- ");                
                    System.out.print(obteText(rFile));
                    saltaAColumna(rFile, EDAT);
                    System.out.print(" (");                
                    System.out.print(rFile.readInt());
                    System.out.println(")");                
                }
               
                rFile.close();
               
            } catch (IOException ex) {
                System.out.println("ERRROR");
            }
        }
    public class ExempleComplertAmbCharsMarca0Estructurat{
        File file = new File("carpeta/dades.dat");
               
        /*FORMAT D'EMMAGATZEMATGE:
         *      1    2    3    4    5    6    7        
         * 024680246802468024680246802468024680...     BYTES
         * NOM_______0COGNOM1___0COGNOM2___0EDAT       PATRO DADES
         */
       
        public static int[] patroColumnes={0, 22, 44, 66};
        public static int NOM = 0;  
        public static int COGNOM1 = 1;
        public static int COGNOM2 = 2;
        public static int EDAT = 3;
        public static int MIDA_FILA = 70;

    BeantwoordenVerwijderen
  4.     public void saltaAfila(RandomAccessFile rFile, int fila)
    throws IOException{
            rFile.seek(fila*MIDA_FILA);
        }
       
        public void saltaAlIniciDeFila(RandomAccessFile rFile)
    throws IOException{
            long pos = rFile.getFilePointer();
            pos = pos - pos % MIDA_FILA;  //EXACTAMENT AL INICI DE LA FILA
                   
            rFile.seek(pos);
        }
       
        public void saltaASeguentFila(RandomAccessFile rFile)
    throws IOException{
            long pos = rFile.getFilePointer() -1;
            pos = pos - pos % MIDA_FILA + MIDA_FILA;  //EXACTAMENT AL INICI DE LA FILA SEGUENT
                   
            rFile.seek(pos);
        }
       
       
        public void saltaAColumna(RandomAccessFile rFile, int columna)
                                                              throws IOException{
            rFile.seek(patroColumnes[columna]);
        }
       
        public String obteText(RandomAccessFile rFile)throws IOException{
            String text="";
            char c = rFile.readChar();
            while (c != 0) {
                text += c;
                c = rFile.readChar();
            }
            return text;        
        }
       
        public boolean esFinal(RandomAccessFile rFile) throws IOException{
            return rFile.length()==rFile.getFilePointer();
        }
       
        public long numFiles(RandomAccessFile rFile) throws IOException{
            return rFile.length()%MIDA_FILA;
        }
       
        public void escriuText(RandomAccessFile rFile, String text)
    throws IOException{
            for(int i=0; i<text.length(); i++){
                rFile.writeChar(text.charAt(i));
            }
            rFile.writeChar(0);
        }
       
       
        /*
         * Mètodes específics
         */
       
        public void escriuNom(RandomAccessFile rFile, int fila, String text)
                                                            throws IOException{
            saltaAfila(rFile, fila);
            saltaAColumna(rFile, NOM);
            escriuText(rFile, text);
        }
       
        public void escriuEdat(RandomAccessFile rFile, int fila, int valor)
                                                             throws IOException{
            saltaAfila(rFile, fila);
            saltaAColumna(rFile, EDAT);
            rFile.writeInt(valor);
        }
       
        public void insereixFilaAlFinal(RandomAccessFile rFile, String nom,
                                        String cognom1, String cognom2,
                                        int edat) throws IOException{
            rFile.seek(rFile.length());
           
            escriuText(rFile, nom);
            saltaAColumna(rFile, COGNOM1);
            escriuText(rFile, cognom1);
            saltaAColumna(rFile, COGNOM2);
            escriuText(rFile, cognom2);
            saltaAColumna(rFile, EDAT);
            rFile.writeInt(edat);
        }
       

        public String obteNom(RandomAccessFile rFile, int fila)
    throws IOException{
            String text;
            saltaAfila(rFile, fila);
            saltaAColumna(rFile, NOM);
            text = obteText(rFile);
            return text;
        }
       
        public int obteEdat(RandomAccessFile rFile, int fila)
    throws IOException{
            int valor;
            saltaAfila(rFile, fila);
            saltaAColumna(rFile, EDAT);
            valor = rFile.readInt();
            return valor;
        }

    BeantwoordenVerwijderen

Opmerking: Alleen leden van deze blog kunnen een reactie posten.