package de.wwwu.awolf.presenter.data.generator; import de.wwwu.awolf.model.Line; import java.security.SecureRandom; import java.util.HashSet; import java.util.Set; import java.util.concurrent.Callable; /** * Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden. * * @Author: Armin Wolf * @Email: a_wolf28@uni-muenster.de * @Date: 01.08.2017. */ public class CloudDatasetGenerator implements Callable> { private final int size; public CloudDatasetGenerator(int size) { this.size = size; } /** * Generiert zu einer gegebenen Größe einen Datensatz des typen: Punktwolke * * @return Liste der Geraden */ public Set generateDataCloud() { Set lines = new HashSet<>(); SecureRandom random = new SecureRandom(); double m = 1 + random.nextDouble(); double b = random.nextDouble(); for (int i = 1; i < (size + 1); i++) { double y = (random.nextGaussian() * 100) % 100; double signal = m * i + b; signal *= -1; Line line = new Line(i, signal - y); line.setId(i - 1 + ""); lines.add(line); } return lines; } @Override public Set call() throws Exception { return generateDataCloud(); } }