Commit 251c12d3 authored by guillaume.garbay's avatar guillaume.garbay
Browse files

No commit message

No commit message
1 merge request!1Add Svn history
This commit is part of merge request !1. Comments created here will be created in the context of that merge request.
Showing with 89 additions and 40 deletions
+89 -40
Entrées
- Marnage
- HSI (marnage, saison)
- Rayon max déplacement (saison, phase jour)
Initialisations
- Lac (marnage, HSI)
- Population (nbr individus, position initiale, sexe...)
- Date début de la simulation
- Horloge interne par individus
Sorties
- Déplacements de chaque individus (historique : id_maille, HSI, saison, phase journée...)
- Distances parcourue (par jour, heure, saison...)
- Angles de déplacement
Process
1 - Temps phase journée : aube, jour, crep, nuit
saison : période de reproduction ?
2 - Marnage modification HSI
Brochet
3 - Ordre de déplacements aléatoire
4 - Calcul des mailles accessibles (Rayon max déplacement, marnage, HSI...) |
|
5 - Mouvement (Période repro ?, phase jour) |
6 - Enregistrement des positions de chaque individu + HSI, id_maille, saison, phase jour...
Calcul => Distance parcourue (saison, phase jour, marnage...)
Angles de déplacements
......@@ -7,7 +7,7 @@
<processes>
<processesAtBegin>
<pikelake.pikes.PikesPopulateProcess>
<initialNumberOfPikes>20</initialNumberOfPikes>
<initialNumberOfPikes>4</initialNumberOfPikes>
</pikelake.pikes.PikesPopulateProcess>
</processesAtBegin>
<processesEachStep>
......
......@@ -22,21 +22,20 @@ public class Grid extends Grid2D<Cell, Individual> {
@InitTransientParameters
public void initTransientParameters(Pilot pilot) throws FileNotFoundException {
//System.out.println("Init Grid");
int idLigne = 0;
double hsiMoy = 0, hsiStd = 0;
StringTokenizer sLigne;
// TODO empty grid
grid = new Cell[gridWidth * gridHeight];
// Initialisation de toutes les mailles
int cptCell = 1;
int cptCell = 0;
while (cptCell != gridWidth * gridHeight) {
grid[cptCell] = new Cell(cptCell, -1);
cptCell = cptCell + 1;
}
}
cptCell = 0;
// Lecture fichier contenant les HSI de toutes les mailles
......
......@@ -8,7 +8,11 @@ import fr.cemagref.ohoui.annotations.Description;
import fr.cemagref.ohoui.filters.NoTransientField;
import fr.cemagref.ohoui.swing.OhOUI;
import fr.cemagref.ohoui.swing.OhOUIDialog;
import fr.cemagref.simaqualife.kernel.AquaNism;
import fr.cemagref.simaqualife.kernel.AquaNismsGroup;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
......@@ -16,6 +20,8 @@ import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
......@@ -29,8 +35,11 @@ import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureIterator;
import org.geotools.data.simple.SimpleFeatureSource;
import com.itextpdf.awt.geom.Rectangle;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.MultiPolygon;
import pikelake.Grid;
import pikelake.pikes.Pike;
import pikelake.pikes.PikesGroup;
......@@ -93,8 +102,6 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
public void init() {
//System.out.println("Init Shape");
display = new DisplayComponent();
display.setVisible(false);
display.setDoubleBuffered(true);
......@@ -123,7 +130,6 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
// TODO Auto-generated catch block
e.printStackTrace();
}
// original dimension storage
this.shapeOriginalWidth = this.generalPath.getBounds().getWidth();
this.shapeOriginalHeight = this.generalPath.getBounds().getHeight();
......@@ -145,8 +151,7 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
groupsColors.add(Color.GRAY);
display.repaint();
display.setVisible(true);
//System.out.println("Fin IS");
}
public void disable() {
......@@ -159,10 +164,10 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
}
public void valueChanged(ObservablesHandler clObservable, Object instance, long t) {
if (groups == null && instance != null) {
groups.add((PikesGroup) instance);
if (groups.isEmpty() && instance != null) {
groups.add((PikesGroup) instance);
}
System.out.println(groups.isEmpty());
display.repaint();
display.setVisible(true);
}
......@@ -212,10 +217,7 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
rescaleFactorWithOriginal = displayHeightBak / shapeOriginalHeight;
}
// rescale the generalPath
generalPath.transform(
AffineTransform.getScaleInstance(rescaleFactor,rescaleFactor)
);
generalPath.transform (AffineTransform.getScaleInstance (rescaleFactor, rescaleFactor));
}
// Draw Background
g.setColor(bgColor);
......@@ -225,30 +227,38 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C
g2d.fill(generalPath);
//g.setColor(aquanismsColor);
Iterator<Color> colorsIterator = groupsColors.iterator();
// Draw aquanisms
//System.out.println(groups.isEmpty());
if(groups.isEmpty()) {
//PikesGroup pikeGroup = PikesGroup.this.getAquaNismsList();
//groups.add((PikesGroup) ((AquaNismsGroup<Pike, Grid>) groups).getAquaNismsList());
//groups.add(PikesGroup.class.getAquaNismsList() );
//groups.add(PikesGroup.getAquaNismsList());
}
g.setColor(pikeColor);
double widthMax = 0, heightMax = 0;
double xPike = 0, yPike = 0, xPike2 = 0, yPike2 = 0;
widthMax = generalPath.getBounds().getWidth();
heightMax = generalPath.getBounds().getHeight();
//g2d.fillRect(widthMax, heightMax, 1, 1);
//System.out.println(generalPath.getBounds2D());
//System.out.println(widthMax);
//System.out.println(heightMax);
for (PikesGroup group : groups) {
if (colorsIterator.hasNext()) {
g.setColor(colorsIterator.next());
}
for (Pike aquanism : group.getAquaNismsList()) {
// TODO get the cell position
System.out.println(aquanism.getPosition());
//Rectangle rect = new Rectangle((int) ((aquanism.getPosition().getX() + repositioningTranslateX) * rescaleFactorWithOriginal),
// (int) (generalPath.getBounds().getHeight() /*flip vertically*/ - (aquanism.getPosition().getY() + repositioningTranslateY) * rescaleFactorWithOriginal),
// sizeOfDisplayedIndividuals, sizeOfDisplayedIndividuals);
// draw the individuals after repositioning and rescaling the position
//g2d.fill(rect);
}
if (colorsIterator.hasNext())
g.setColor(colorsIterator.next());
for (Pike aquanism : group.getAquaNismsList() ) {
// Calcul de la maille occupe sur une grille de 216*244
yPike = (aquanism.getPosition().getIndex() / 216);
xPike = (aquanism.getPosition().getIndex() - (yPike * 216));
// Calcul dela maille occupe sur la grille redimensionnee (dynamique)
xPike2 = xPike * (widthMax / 216);
yPike2 = yPike * (heightMax / 244);
// Affichage de chaque individu
g2d.drawRect((int) xPike2, (int) yPike2, 1, 1);
//System.out.println(aquanism.getPosition().getIndex());
//System.out.println(" X = " + xPike + " Y = " + yPike);
//System.out.println(" X = " + xPike2 + " Y = " + yPike2 + "\n");
}
}
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment