2026-04-27 12:56:24 +02:00
|
|
|
package ecoparasite.svg;
|
|
|
|
|
|
|
|
|
|
import ecoparasite.representation.ValeursXY;
|
|
|
|
|
import ecoparasite.svg.elements.ElementsFactory;
|
|
|
|
|
|
2026-04-29 10:07:05 +02:00
|
|
|
/**
|
|
|
|
|
* Classe qui permet de convertir des doubles en dimension SVG.
|
|
|
|
|
*/
|
2026-04-27 12:56:24 +02:00
|
|
|
public class SVGResizing {
|
|
|
|
|
|
2026-04-29 10:07:05 +02:00
|
|
|
|
2026-04-27 12:56:24 +02:00
|
|
|
private double minX;
|
|
|
|
|
private double maxX;
|
|
|
|
|
private double minY;
|
|
|
|
|
private double maxY;
|
|
|
|
|
|
2026-04-29 10:07:05 +02:00
|
|
|
/**
|
|
|
|
|
* Constructeur.
|
|
|
|
|
* Définit les minimum et maximum X et Y.
|
|
|
|
|
* @param minXGrad
|
|
|
|
|
* @param minYGrad
|
|
|
|
|
* @param maxXGrad
|
|
|
|
|
* @param maxYGrad
|
|
|
|
|
*/
|
2026-04-27 12:56:24 +02:00
|
|
|
public SVGResizing(
|
|
|
|
|
double minXGrad,
|
|
|
|
|
double minYGrad,
|
|
|
|
|
double maxXGrad,
|
|
|
|
|
double maxYGrad
|
|
|
|
|
){
|
|
|
|
|
this.minX = minXGrad;
|
|
|
|
|
this.maxX = maxXGrad;
|
|
|
|
|
this.minY = minYGrad;
|
|
|
|
|
this.maxY = maxYGrad;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public double getMinX() {
|
|
|
|
|
return minX;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public double getMaxX() {
|
|
|
|
|
return maxX;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public double getMinY() {
|
|
|
|
|
return minY;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public double getMaxY() {
|
|
|
|
|
return maxY;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Coordonnees resize(ValeursXY vxy ){
|
|
|
|
|
return this.resize( vxy.getX(), vxy.getY() );
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-29 10:07:05 +02:00
|
|
|
/**
|
|
|
|
|
* Permet de redimensionner quelconque valeur X Y (Provenant de ValeursXY par exemple) en Coordonnées SVG.
|
|
|
|
|
* @param X
|
|
|
|
|
* @param Y
|
|
|
|
|
* @return La coordonnée SVG équivalente.
|
|
|
|
|
*/
|
2026-04-27 12:56:24 +02:00
|
|
|
public Coordonnees resize( double X, double Y ){
|
|
|
|
|
double surface = ElementsFactory.SVG_SIZE - 2 * ElementsFactory.SVG_OFFSET;
|
|
|
|
|
|
|
|
|
|
double convX = ( X - minX ) / ( maxX - minX );
|
|
|
|
|
double convY = ( Y - minY ) / ( maxY - minY );
|
|
|
|
|
|
|
|
|
|
double SVG_X = ElementsFactory.SVG_OFFSET + convX * surface;
|
|
|
|
|
double SVG_Y = ElementsFactory.SVG_SIZE - ElementsFactory.SVG_OFFSET - convY * surface;
|
|
|
|
|
|
|
|
|
|
return new Coordonnees(SVG_X, SVG_Y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|