Class CellSpace

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Canvas
              |
              +--CellSpace
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class CellSpace
extends java.awt.Canvas

Questa e' la classe che provvede alla costruzione del nostro mondo
In questa classe sono presenti due classi interne:una(SymMouse) per gestire gli eventi del Mouse,l'altra(SymMouseMotion) per gestire sempre gli eventi del Mouse ma riferendoci al suo movimento. La classe interna e' appunto definita in un'altra classe e si comporta propio come una classe normale pertanto si possono costruire oggetti ed invocare metodi l'unica differenza sta nel fatto che ai metodi della classe interna e' ocnsentito accedere alle variabili istanza private della classe esterna e se ne possono invocare i metodi.

See Also:
Serialized Form

Nested Class Summary
 class CellSpace.SymMouse
          Premere un tasto e' un evento che va gestito.
 class CellSpace.SymMouseMotion
          Creiamo un'ascoltatore del moto del mouse.
 
Field Summary
 boolean alive
          Variabile usate nella generazione Random
 int b
          distanza tra mouseX e l'origine della cella lungo x
 int c
          distanza tra mouseY e l'origine della cella lungo y
 boolean clear
          mi serve per la stabilizzazione
 int ct
          incrementatore griglia statica principale
 int ct1
          incrementatore prima griglia statica
 int ct2
          incrementatore seconda griglia statica
 int ct3
          incrementatore terza griglia statica
 int ct4
          incrementatore quarta griglia statica
 int generations
          numero di configurazione dinamica della griglia principale
 int generations1
          numero di configurazione dinamica della prima griglia
 int generations2
          numero di configurazione dinamica della seconda griglia
 int generations3
          numero di configurazione dinamica della terza griglia
 int generations4
          numero di configurazione dinamica della quarta griglia
 int i
          variabile di conteggio per la distribuzione lungo x delle celle
 int j
          variabile di conteggio per la distribuzione lungo y delle celle
 double number
          Variabile usate nella generazione Random
 int population
          Teniamo in conto quante sono le celle vive
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
CellSpace(int borderType, int cellSize, int cellCols, int cellRows)
          Questo e' il costruttore della classe.
 
Method Summary
 void borderCondition(int borderType)
          Permette lo studio delle condizioni sul bordo del mondo.
 void clear()
          Puliamo il nostro spazio di lavoro.
 void compareTo(boolean[][] s, int k, int p)
          Permette di confrontare la nostra griglia, scannerizzata, con la configurazione dell'aliante scelta.
 void contPopulation()
          Questo metodo tiene il conto su quanti abitanti sono in vita Mi indica generazione dopo generazine quanti abitanti sono ancora in vita
 void drawCompare(boolean[][] world1)
          Mi permette di colorare le configurazioni trovate uguali
 boolean drawShape(int shapeWidth, int shapeHeight, int[] shape)
          Disegniamo la configurazione.
 void next()
          Creiamo la successiva generazione verificando le regole.
 void paint(java.awt.Graphics g)
          Permette di disegnare.
 void update(java.awt.Graphics theG)
          Questo metodo e' molto importante per la grafica.
 
Methods inherited from class java.awt.Canvas
addNotify, createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

generations

public int generations
numero di configurazione dinamica della griglia principale


generations1

public int generations1
numero di configurazione dinamica della prima griglia


generations2

public int generations2
numero di configurazione dinamica della seconda griglia


generations3

public int generations3
numero di configurazione dinamica della terza griglia


generations4

public int generations4
numero di configurazione dinamica della quarta griglia


ct

public int ct
incrementatore griglia statica principale


ct1

public int ct1
incrementatore prima griglia statica


ct2

public int ct2
incrementatore seconda griglia statica


ct3

public int ct3
incrementatore terza griglia statica


ct4

public int ct4
incrementatore quarta griglia statica


clear

public boolean clear
mi serve per la stabilizzazione


alive

public boolean alive
Variabile usate nella generazione Random


number

public double number
Variabile usate nella generazione Random


i

public int i
variabile di conteggio per la distribuzione lungo x delle celle


j

public int j
variabile di conteggio per la distribuzione lungo y delle celle


b

public int b
distanza tra mouseX e l'origine della cella lungo x


c

public int c
distanza tra mouseY e l'origine della cella lungo y


population

public int population
Teniamo in conto quante sono le celle vive

Constructor Detail

CellSpace

public CellSpace(int borderType,
                 int cellSize,
                 int cellCols,
                 int cellRows)
Questo e' il costruttore della classe. Tramite questo costruttore non solo vengono inizializzate le griglie ma ovviamente vengono accreditati anche gli ascoltatori del mouse.

Parameters:
borderType - la tipologia di bordo scelta
cellRows - il numero di righe
cellCols - il numero di colonne
Method Detail

update

public void update(java.awt.Graphics theG)
Questo metodo e' molto importante per la grafica. Il metodo update : - evita di cancellare il background prima del ridisegno - disegna prima in una immagine di buffer e poi nel contesto grafico del componente quindi evita lo sfarfallio

Overrides:
update in class java.awt.Canvas
Parameters:
theG - cosa dobbiamo rappresentare

paint

public void paint(java.awt.Graphics g)
Permette di disegnare. Abbiamo eseguito un casting espliciti alla classe Graphics2D e in questo contesto provvediamo a disegnare il mondo ed i suoi abitanti.Una particolarita': nel caso nel mondo ci siano quattro o meno abitanti il colore di rappresentazione passa da blu a viola!!

Overrides:
paint in class java.awt.Canvas
Parameters:
g - cosa dobbiamo rappresentare

borderCondition

public void borderCondition(int borderType)
Permette lo studio delle condizioni sul bordo del mondo. Ci permette di decidere con che tipologia vigliamo configurare il bordo del nostro mondo.


clear

public void clear()
Puliamo il nostro spazio di lavoro. Con questo metodo rendiamo il mondo pronto ad accettare una nuova configurazione


next

public void next()
Creiamo la successiva generazione verificando le regole. Questo metodo e'importante in quanto contiene l'implementazione delle regole e tutto cio' che ci occorre per la simulazione


drawShape

public boolean drawShape(int shapeWidth,
                         int shapeHeight,
                         int[] shape)
Disegniamo la configurazione. Otteniamo un messaggio di errore se la configurazione eccede le dimensioni della griglia!!!

Parameters:
shapeWidth - la larghezza della figura
shapeHeight - la lunghezza della figura
shape - la figura

contPopulation

public void contPopulation()
Questo metodo tiene il conto su quanti abitanti sono in vita Mi indica generazione dopo generazine quanti abitanti sono ancora in vita


compareTo

public void compareTo(boolean[][] s,
                      int k,
                      int p)
Permette di confrontare la nostra griglia, scannerizzata, con la configurazione dell'aliante scelta.

Parameters:
s - e'la configurazione con cui opero il confronto
k - il numero di righe con cui dimensionare i sottoarray per il confronto.
p - il numero di colonne con cui dimensionare i sottoarray per il confronto.

drawCompare

public void drawCompare(boolean[][] world1)
Mi permette di colorare le configurazioni trovate uguali

Parameters:
world1 - la configurazione trovata uguale



Questa la bacheca di Informatica Grafica, corso di laurea specialistica in Ing. Edile-architettura
by FdA
ultima modifica: 02/02/2005 11.30