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 slope;
|
||||||
private Double yInterception;
|
private Double yInterception;
|
||||||
|
|
||||||
|
private final Double EPSILON = 0.00001;
|
||||||
|
|
||||||
|
|
||||||
public TheilSenEstimator(LinkedList<Line> setOfLines, LinkedList<Point> setOfIntersections, Presenter presenter) {
|
public TheilSenEstimator(LinkedList<Line> setOfLines, LinkedList<Point> setOfIntersections, Presenter presenter) {
|
||||||
this.presenter = presenter;
|
this.presenter = presenter;
|
||||||
|
@ -88,7 +90,7 @@ public class TheilSenEstimator extends Observable implements Algorithm {
|
||||||
interval = new Interval(NEGATIV_INF, POSITIV_INF);
|
interval = new Interval(NEGATIV_INF, POSITIV_INF);
|
||||||
r = (double) n;
|
r = (double) n;
|
||||||
while (true) {
|
while (true) {
|
||||||
if (this.N <= n || (interval.getUpper() - interval.getLower()) < 0.00001) {
|
if (this.N <= n || (interval.getUpper() - interval.getLower()) < EPSILON) {
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
//Anzahl der Schnittpunkte im Intervall [-Inf, a)
|
//Anzahl der Schnittpunkte im Intervall [-Inf, a)
|
||||||
|
|
|
@ -2,6 +2,8 @@ package Presenter.Generator;
|
||||||
|
|
||||||
import Model.Line;
|
import Model.Line;
|
||||||
|
|
||||||
|
import Model.Point;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.Observable;
|
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()) {
|
for (Double d :points.keySet()) {
|
||||||
Line line = new Line((double) d, points.get(d));
|
Line line = new Line((double) d, points.get(d));
|
||||||
line.setId(idx-1+"");
|
line.setId(idx+"");
|
||||||
lines.add(line);
|
lines.add(line);
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
|
@ -93,5 +95,35 @@ public class DatasetGenerator extends Observable{
|
||||||
return lines;
|
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(() -> {
|
generatorThread = new Thread(() -> {
|
||||||
DatasetGenerator generator = new DatasetGenerator();
|
DatasetGenerator generator = new DatasetGenerator();
|
||||||
generator.addObserver(this);
|
generator.addObserver(this);
|
||||||
getModel().setLines(generator.generateDataLines());
|
getModel().setLines(generator.generateCircle());
|
||||||
calculateIntersections();
|
calculateIntersections();
|
||||||
getView().enableFunctionality();
|
getView().enableFunctionality();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue