Kreis mit Punkten kann generiert werden
This commit is contained in:
parent
63fb2abb74
commit
7abd40310b
|
@ -49,6 +49,8 @@ public class TheilSenEstimator extends Observable implements Algorithm {
|
|||
private Double slope;
|
||||
private Double yInterception;
|
||||
|
||||
private final Double EPSILON = 0.00001;
|
||||
|
||||
|
||||
public TheilSenEstimator(LinkedList<Line> setOfLines, LinkedList<Point> setOfIntersections, Presenter presenter) {
|
||||
this.presenter = presenter;
|
||||
|
@ -88,7 +90,7 @@ public class TheilSenEstimator extends Observable implements Algorithm {
|
|||
interval = new Interval(NEGATIV_INF, POSITIV_INF);
|
||||
r = (double) n;
|
||||
while (true) {
|
||||
if (this.N <= n || (interval.getUpper() - interval.getLower()) < 0.00001) {
|
||||
if (this.N <= n || (interval.getUpper() - interval.getLower()) < EPSILON) {
|
||||
break;
|
||||
} else {
|
||||
//Anzahl der Schnittpunkte im Intervall [-Inf, a)
|
||||
|
|
|
@ -2,6 +2,8 @@ package Presenter.Generator;
|
|||
|
||||
import Model.Line;
|
||||
|
||||
import Model.Point;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Observable;
|
||||
|
@ -77,10 +79,10 @@ public class DatasetGenerator extends Observable{
|
|||
}
|
||||
}
|
||||
|
||||
int idx = 1;
|
||||
int idx = lines.size();
|
||||
for (Double d :points.keySet()) {
|
||||
Line line = new Line((double) d, points.get(d));
|
||||
line.setId(idx-1+"");
|
||||
line.setId(idx+"");
|
||||
lines.add(line);
|
||||
idx++;
|
||||
}
|
||||
|
@ -93,5 +95,35 @@ public class DatasetGenerator extends Observable{
|
|||
return lines;
|
||||
}
|
||||
|
||||
|
||||
public LinkedList<Line> generateCircle() {
|
||||
LinkedList<Line> lines = new LinkedList<>();
|
||||
|
||||
double from = 0;
|
||||
double to = Math.PI * 3;
|
||||
int n = 100;
|
||||
|
||||
//calculate the distance between every two points
|
||||
double distance = (to - from) / ((double) n);
|
||||
|
||||
//create points
|
||||
double currentDistance= from;
|
||||
for(int i=0; i < n; i++)
|
||||
{
|
||||
double x = Math.cos(currentDistance);
|
||||
double y = Math.sin(currentDistance);
|
||||
|
||||
|
||||
Line line = new Line(x,y);
|
||||
line.setId(i+"");
|
||||
lines.add(line);
|
||||
|
||||
//distance for the next iteration
|
||||
currentDistance += distance;
|
||||
}
|
||||
|
||||
return lines;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -294,7 +294,7 @@ public class Presenter implements Observer {
|
|||
generatorThread = new Thread(() -> {
|
||||
DatasetGenerator generator = new DatasetGenerator();
|
||||
generator.addObserver(this);
|
||||
getModel().setLines(generator.generateDataLines());
|
||||
getModel().setLines(generator.generateCircle());
|
||||
calculateIntersections();
|
||||
getView().enableFunctionality();
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue