Kreis mit Punkten kann generiert werden

This commit is contained in:
Armin Wolf 2017-09-07 12:50:07 +02:00
parent 63fb2abb74
commit 7abd40310b
3 changed files with 38 additions and 4 deletions

View File

@ -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)

View File

@ -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;
}
}

View File

@ -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();
});