Generator
Generator fertig. Es fehlen noch die Fehlerfkt.
This commit is contained in:
parent
e2a684a9ce
commit
88eb4f4e06
|
@ -1,4 +1,6 @@
|
||||||
package Presenter;
|
package Presenter.Algorithms;
|
||||||
|
|
||||||
|
import Presenter.Presenter;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
|
@ -1,4 +1,6 @@
|
||||||
package Presenter;
|
package Presenter.Algorithms;
|
||||||
|
|
||||||
|
import Presenter.Presenter;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
|
@ -1,8 +1,10 @@
|
||||||
package Presenter;
|
package Presenter.Algorithms;
|
||||||
|
|
||||||
import Model.*;
|
import Model.*;
|
||||||
import Presenter.Comparators.YOrderLineComparatorBegin;
|
import Presenter.Comparators.YOrderLineComparatorBegin;
|
||||||
import Presenter.Comparators.YOrderLineComparatorEnd;
|
import Presenter.Comparators.YOrderLineComparatorEnd;
|
||||||
|
import Presenter.Presenter;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
|
@ -1,6 +1,7 @@
|
||||||
package Presenter;
|
package Presenter.Algorithms;
|
||||||
|
|
||||||
import Model.Line;
|
import Model.Line;
|
||||||
|
import Presenter.Presenter;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
|
@ -3,8 +3,6 @@ package Presenter.Algorithms;
|
||||||
import Model.Interval;
|
import Model.Interval;
|
||||||
import Model.Line;
|
import Model.Line;
|
||||||
import Model.Point;
|
import Model.Point;
|
||||||
import Presenter.BinomialCoeffizient;
|
|
||||||
import Presenter.FastElementSelector;
|
|
||||||
import Presenter.Presenter;
|
import Presenter.Presenter;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -3,17 +3,18 @@ package Presenter;
|
||||||
import Model.Arrangement;
|
import Model.Arrangement;
|
||||||
import Model.Interval;
|
import Model.Interval;
|
||||||
import Model.Line;
|
import Model.Line;
|
||||||
import Model.Point;
|
import Presenter.Algorithms.IntersectionCounter;
|
||||||
import Presenter.Algorithms.LeastMedianOfSquaresEstimator;
|
import Presenter.Algorithms.LeastMedianOfSquaresEstimator;
|
||||||
import Presenter.Algorithms.RepeatedMedianEstimator;
|
import Presenter.Algorithms.RepeatedMedianEstimator;
|
||||||
import Presenter.Algorithms.TheilSenEstimator;
|
import Presenter.Algorithms.TheilSenEstimator;
|
||||||
|
import Presenter.Generator.DatasetGenerator;
|
||||||
import Presenter.Import.DataImporter;
|
import Presenter.Import.DataImporter;
|
||||||
import View.MainFrame;
|
import View.MainFrame;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Observable;
|
import java.util.Observable;
|
||||||
import java.util.Observer;
|
import java.util.Observer;
|
||||||
|
|
||||||
|
@ -276,6 +277,14 @@ public class Presenter implements Observer {
|
||||||
importer.run();
|
importer.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void generateDataset(){
|
||||||
|
DatasetGenerator generator = new DatasetGenerator();
|
||||||
|
getModel().setLines((LinkedList<Line>) generator.generateDataset());
|
||||||
|
calcArrangementNodes();
|
||||||
|
getView().enableFunctionality();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/***************************************************************************************************************************
|
/***************************************************************************************************************************
|
||||||
* Getter und Setter Methoden
|
* Getter und Setter Methoden
|
||||||
***************************************************************************************************************************/
|
***************************************************************************************************************************/
|
||||||
|
|
|
@ -29,6 +29,7 @@ public class MainFrame extends JFrame {
|
||||||
|
|
||||||
private JButton arrangementButton;
|
private JButton arrangementButton;
|
||||||
private JButton importButton;
|
private JButton importButton;
|
||||||
|
private JButton generateButton;
|
||||||
|
|
||||||
private OutputPanel output;
|
private OutputPanel output;
|
||||||
private MenuPanel menupanel;
|
private MenuPanel menupanel;
|
||||||
|
@ -135,6 +136,7 @@ public class MainFrame extends JFrame {
|
||||||
private void setTitles() {
|
private void setTitles() {
|
||||||
this.setTitle("Algorithmen zur Berechnung von Ausgleichgeraden");
|
this.setTitle("Algorithmen zur Berechnung von Ausgleichgeraden");
|
||||||
importButton.setText("Import");
|
importButton.setText("Import");
|
||||||
|
generateButton.setText("Generiere");
|
||||||
arrangementButton.setText("Dualraum");
|
arrangementButton.setText("Dualraum");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,6 +149,7 @@ public class MainFrame extends JFrame {
|
||||||
private void addComponents() {
|
private void addComponents() {
|
||||||
pane.add(arrangementButton);
|
pane.add(arrangementButton);
|
||||||
pane.add(importButton);
|
pane.add(importButton);
|
||||||
|
pane.add(generateButton);
|
||||||
northPanel.add(menupanel);
|
northPanel.add(menupanel);
|
||||||
northPanel.add(pane);
|
northPanel.add(pane);
|
||||||
|
|
||||||
|
@ -214,6 +217,7 @@ public class MainFrame extends JFrame {
|
||||||
//Buttons
|
//Buttons
|
||||||
arrangementButton = new JButton();
|
arrangementButton = new JButton();
|
||||||
importButton = new JButton();
|
importButton = new JButton();
|
||||||
|
generateButton = new JButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setIcons(){
|
private void setIcons(){
|
||||||
|
@ -284,6 +288,12 @@ public class MainFrame extends JFrame {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
generateButton.addActionListener((ActionEvent e) -> {
|
||||||
|
SwingUtilities.invokeLater(() -> {
|
||||||
|
getPresenter().generateDataset();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enableFunctionality(){
|
public void enableFunctionality(){
|
||||||
|
|
|
@ -8,7 +8,7 @@ import static org.junit.Assert.assertTrue;
|
||||||
import Model.Line;
|
import Model.Line;
|
||||||
import Model.Point;
|
import Model.Point;
|
||||||
import Model.Interval;
|
import Model.Interval;
|
||||||
import Presenter.IntersectionCounter;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
|
Loading…
Reference in New Issue