Generator

Generator fertig. Es fehlen noch die Fehlerfkt.
This commit is contained in:
Armin Wolf 2017-08-01 19:34:09 +02:00
parent e2a684a9ce
commit 88eb4f4e06
9 changed files with 76 additions and 9 deletions

View File

@ -1,4 +1,6 @@
package Presenter;
package Presenter.Algorithms;
import Presenter.Presenter;
import java.util.Collections;
import java.util.LinkedList;

View File

@ -1,4 +1,6 @@
package Presenter;
package Presenter.Algorithms;
import Presenter.Presenter;
import java.util.ArrayList;
import java.util.Collections;

View File

@ -1,8 +1,10 @@
package Presenter;
package Presenter.Algorithms;
import Model.*;
import Presenter.Comparators.YOrderLineComparatorBegin;
import Presenter.Comparators.YOrderLineComparatorEnd;
import Presenter.Presenter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;

View File

@ -1,6 +1,7 @@
package Presenter;
package Presenter.Algorithms;
import Model.Line;
import Presenter.Presenter;
import java.util.ArrayList;
import java.util.concurrent.ThreadLocalRandom;

View File

@ -3,8 +3,6 @@ package Presenter.Algorithms;
import Model.Interval;
import Model.Line;
import Model.Point;
import Presenter.BinomialCoeffizient;
import Presenter.FastElementSelector;
import Presenter.Presenter;
import java.util.*;

View File

@ -0,0 +1,43 @@
package Presenter.Generator;
import Model.Line;
import java.util.LinkedList;
import java.util.Random;
/**
* Implementierung verschiedener Algorithmen zur Berechnung von Ausgleichsgeraden.
*
* @Author: Armin Wolf
* @Email: a_wolf28@uni-muenster.de
* @Date: 01.08.2017.
*/
public class DatasetGenerator {
public DatasetGenerator(){}
public LinkedList<Line> generateDataset(){
LinkedList<Line> lines = new LinkedList<>();
Random random = new Random();
random.setSeed(9999);
double m = 1 + random.nextDouble();
double b = random.nextDouble();
for (int i=1;i<101;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;
}
}

View File

@ -3,17 +3,18 @@ package Presenter;
import Model.Arrangement;
import Model.Interval;
import Model.Line;
import Model.Point;
import Presenter.Algorithms.IntersectionCounter;
import Presenter.Algorithms.LeastMedianOfSquaresEstimator;
import Presenter.Algorithms.RepeatedMedianEstimator;
import Presenter.Algorithms.TheilSenEstimator;
import Presenter.Generator.DatasetGenerator;
import Presenter.Import.DataImporter;
import View.MainFrame;
import java.util.List;
import javax.swing.*;
import java.io.File;
import java.util.LinkedList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
@ -276,6 +277,14 @@ public class Presenter implements Observer {
importer.run();
}
public void generateDataset(){
DatasetGenerator generator = new DatasetGenerator();
getModel().setLines((LinkedList<Line>) generator.generateDataset());
calcArrangementNodes();
getView().enableFunctionality();
}
/***************************************************************************************************************************
* Getter und Setter Methoden
***************************************************************************************************************************/

View File

@ -29,6 +29,7 @@ public class MainFrame extends JFrame {
private JButton arrangementButton;
private JButton importButton;
private JButton generateButton;
private OutputPanel output;
private MenuPanel menupanel;
@ -135,6 +136,7 @@ public class MainFrame extends JFrame {
private void setTitles() {
this.setTitle("Algorithmen zur Berechnung von Ausgleichgeraden");
importButton.setText("Import");
generateButton.setText("Generiere");
arrangementButton.setText("Dualraum");
}
@ -147,6 +149,7 @@ public class MainFrame extends JFrame {
private void addComponents() {
pane.add(arrangementButton);
pane.add(importButton);
pane.add(generateButton);
northPanel.add(menupanel);
northPanel.add(pane);
@ -214,6 +217,7 @@ public class MainFrame extends JFrame {
//Buttons
arrangementButton = new JButton();
importButton = new JButton();
generateButton = new JButton();
}
private void setIcons(){
@ -284,6 +288,12 @@ public class MainFrame extends JFrame {
});
});
generateButton.addActionListener((ActionEvent e) -> {
SwingUtilities.invokeLater(() -> {
getPresenter().generateDataset();
});
});
}
public void enableFunctionality(){

View File

@ -8,7 +8,7 @@ import static org.junit.Assert.assertTrue;
import Model.Line;
import Model.Point;
import Model.Interval;
import Presenter.IntersectionCounter;
import java.util.ArrayList;
import java.util.LinkedList;
import org.junit.Before;