2020-03-21 00:37:09 +00:00
|
|
|
package de.wwwu.awolf.model;
|
2017-09-10 15:45:47 +00:00
|
|
|
|
2020-03-28 15:24:35 +00:00
|
|
|
import java.util.HashSet;
|
|
|
|
import java.util.Set;
|
2017-09-10 15:45:47 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
|
|
|
|
*
|
|
|
|
* @Author: Armin Wolf
|
|
|
|
* @Email: a_wolf28@uni-muenster.de
|
|
|
|
* @Date: 28.05.2017.
|
|
|
|
*/
|
|
|
|
public class LineModel {
|
|
|
|
|
2020-03-28 15:24:35 +00:00
|
|
|
private Set<Line> lines;
|
2017-09-10 15:45:47 +00:00
|
|
|
private Double xMinimum;
|
|
|
|
private Double xMaximum;
|
|
|
|
private Double yMinimum;
|
|
|
|
private Double yMaximum;
|
2020-04-05 17:28:38 +00:00
|
|
|
private Double MIN;
|
|
|
|
private Double MAX;
|
2020-03-28 15:24:35 +00:00
|
|
|
private int size;
|
2017-09-10 15:45:47 +00:00
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* Konstruktor
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public LineModel() {
|
2020-03-28 15:24:35 +00:00
|
|
|
lines = new HashSet<>();
|
|
|
|
size = 0;
|
2017-09-18 21:16:18 +00:00
|
|
|
|
|
|
|
xMinimum = Double.MAX_VALUE;
|
|
|
|
xMaximum = Double.MIN_VALUE;
|
|
|
|
yMinimum = Double.MAX_VALUE;
|
|
|
|
yMaximum = Double.MIN_VALUE;
|
|
|
|
|
2020-04-05 17:28:38 +00:00
|
|
|
MIN = 0d;
|
|
|
|
MAX = 0d;
|
2017-09-10 15:45:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* Fügt eine Gerade zu dem Modell hinzu
|
2020-03-20 17:08:18 +00:00
|
|
|
*
|
2017-10-13 09:53:45 +00:00
|
|
|
* @param line Gerade
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public void addLine(Line line) {
|
|
|
|
this.lines.add(line);
|
2020-04-05 17:28:38 +00:00
|
|
|
MIN = line.getM() <= MIN ? line.getM() : MIN;
|
|
|
|
MAX = line.getM() >= MAX ? line.getM() : MAX;
|
2017-09-10 15:45:47 +00:00
|
|
|
}
|
|
|
|
|
2020-04-05 17:28:38 +00:00
|
|
|
public Double getMIN() {
|
|
|
|
return MIN;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Double getMAX() {
|
|
|
|
return MAX;
|
|
|
|
}
|
2017-09-18 18:44:10 +00:00
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @return Liste der Geraden
|
|
|
|
*/
|
2020-03-28 15:24:35 +00:00
|
|
|
public Set<Line> getLines() {
|
2017-09-10 15:45:47 +00:00
|
|
|
return lines;
|
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @param lines Liste der Geraden
|
|
|
|
*/
|
2020-03-28 15:24:35 +00:00
|
|
|
public void setLines(Set<Line> lines) {
|
2020-04-05 17:28:38 +00:00
|
|
|
lines.forEach(this::addLine);
|
2020-03-28 15:24:35 +00:00
|
|
|
this.size = lines.size();
|
2017-09-10 15:45:47 +00:00
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @return Minimale x-Koordiante
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public Double getxMinimum() {
|
|
|
|
return xMinimum;
|
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @param xMinimum Minimale x-Koordiante
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public void setxMinimum(Double xMinimum) {
|
|
|
|
this.xMinimum = xMinimum;
|
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @return Maximale x-Koordiante
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public Double getxMaximum() {
|
|
|
|
return xMaximum;
|
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @param xMaximum Maximale x-Koordiante
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public void setxMaximum(Double xMaximum) {
|
|
|
|
this.xMaximum = xMaximum;
|
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @return Minimale y-Koordiante
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public Double getyMinimum() {
|
|
|
|
return yMinimum;
|
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @param yMinimum Minimale y-Koordiante
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public void setyMinimum(Double yMinimum) {
|
|
|
|
this.yMinimum = yMinimum;
|
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @return Maximale y-Koordiante
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public Double getyMaximum() {
|
|
|
|
return yMaximum;
|
|
|
|
}
|
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* @param yMaximum Maximale y-Koordiante
|
|
|
|
*/
|
2017-09-10 15:45:47 +00:00
|
|
|
public void setyMaximum(Double yMaximum) {
|
|
|
|
this.yMaximum = yMaximum;
|
|
|
|
}
|
2017-09-18 21:16:18 +00:00
|
|
|
|
2017-10-13 09:53:45 +00:00
|
|
|
/**
|
|
|
|
* Setzt die minimalen, maximalen x- und y-Koordinaten
|
|
|
|
*/
|
2017-09-19 11:34:06 +00:00
|
|
|
public void resetRanges() {
|
2017-09-18 21:16:18 +00:00
|
|
|
xMinimum = Double.MAX_VALUE;
|
|
|
|
xMaximum = Double.MIN_VALUE;
|
|
|
|
yMinimum = Double.MAX_VALUE;
|
|
|
|
yMaximum = Double.MIN_VALUE;
|
|
|
|
}
|
2020-03-28 15:24:35 +00:00
|
|
|
|
|
|
|
public int getSize() {
|
|
|
|
return size;
|
|
|
|
}
|
2017-09-10 15:45:47 +00:00
|
|
|
}
|