-
Notifications
You must be signed in to change notification settings - Fork 3
Klassendesign
UML-Klassendesign:
Das UML-Diagramm zeigt die Struktur und Beziehungen zwischen verschiedenen Klassen und Komponenten des LaTriX-Projekts.
Ein Enumerationstyp, der die Ausrichtungen left
, center
, und right
definiert.
Ein Enumerationstyp, der die Vektortypen column
und row
definiert.
Die Klasse LaTeXConverter
übernimmt dabei die eigentliche Matrix/Vektor-zu-String-Konversion und wird als eigene Klassenbibliothek zur Verfügung gestellt. Insbesondere ist diese von den für die GUI-Darstellung im WFA-Framework benötigten Klassen separiert (d.h. die Businesslogik der GUI greift nur auf die LaTeXConverter
-Methoden zu, aber nicht umgekehrt), sodass sie auch einfach für Projekte genutzt werden kann, in denen die spezifische LaTrix-GUI-Implementierung keine Rolle spielt.
Beide Konversionsmethoden von LaTeXConverter
(LaTeXConverter.ConvertMatrixToLaTeX
sowie LaTeXConverter.ConvertVectorToLaTeX
) sind generisch und können daher mit allen Datentypen genutzt werden, aus denen sich MathNet
-Matrizen erstellen lassen (dabei handelt es sich speziell um Doubles, Floats und verschiedene Typen von komplexen Zahltypen). Sie besitzen außerdem ein optionales Argument, dem ein Objekt der Alignment
-Enumeration übergeben werden kann und das bestimmt, ob die Matrix-Elemente in LaTeX links-, rechtsbündig oder zentriert angezeigt werden sollen. Optionen sind Alignment.left
(linksbündig), Alignment.center
(zentriert) sowie Alignment.right
(rechtsbündig). Standardeinstellung ist zentriert. Der ConvertVectorToLaTeX
-Methode kann zusätzlich noch das optionale Argument eines VectorType
übergeben werden, je nachdem, ob der Vektor als Spaltenvektor (Standard; VectorType.column
) oder Zeilenvektor (VectorType.row
) interpretiert werden soll.
-
ConvertMatrixToLaTeX<T>(Matrix<T> matrix, Alignment alignment = Alignment.center)
: Statische Methode, die eine Matrix nach LaTeX konvertiert. -
ConvertVectorToLaTeX<T>(Vector<T> vector, Alignment alignment = Alignment.center, VectorType vector_type = VectorType.column)
: Statische Methode, die einen Vektor nach LaTeX konvertiert. -
GetAlignmentChar(Alignment alignment)
: Statische Methode, die das Ausrichtungszeichen für die gegebene Ausrichtung zurückgibt.
-
test_strings
: Eine Liste von Test-Strings.
- DoubleMatrixTestDataGenerator
- FloatMatrixTestDataGenerator
- VectorTestDataGenerator
- AlignmentTestDataGenerator
Diese Klassen erben von TestDataGenerator
und implementieren die Methode GetEnumerator()
.
Die Test-Klasse für LaTeXConverter
, TestLaTeXConverter
, wird zwar in eigenen Dateien verwaltet und ist für die Einbindung von LaTeXConverterLib
nicht unbedingt nötig, ist aber für Entwicklungszwecke der Bibliothek trotzdem mit dieser verbunden (wer an LaTeXConverter
entwickelt, muss dabei auch die Tests der Testklasse erfüllen).
-
TestConvertDoubleMatrixToLaTeX(Matrix<double> matrix, string expected_string)
: Testet die Konvertierung einer Double-Matrix nach LaTeX. -
TestConvertFloatMatrixToLaTeX(Matrix<float> matrix, string expected_string)
: Testet die Konvertierung einer Float-Matrix nach LaTeX. -
TestConvertVectorToLaTeX(Vector<double> vector, LaTeXConverter.VectorType vector_type, string expected_string)
: Testet die Konvertierung eines Vektors nach LaTeX. -
TestMatrixAlignment(Matrix<double> matrix, LaTeXConverter.Alignment alignment, string expected_string)
: Testet die Ausrichtung einer Matrix nach LaTeX.
-
components
: Ein Container für die Komponenten der Form. - Verschiedene
System.Windows.Forms
-Komponenten wieDataGridView
,NumericUpDown
,TextBox
,Label
,ToolStrip
,Panel
,PictureBox
.
-
Form1_Load(object sender, EventArgs e)
: Lädt die Form. -
NumericUpDownRows_ValueChanged(object sender, EventArgs e)
: Wird aufgerufen, wenn sich der Wert vonNumericUpDownRows
ändert. -
NumericUpDownColumns_ValueChanged(object sender, EventArgs e)
: Wird aufgerufen, wenn sich der Wert vonNumericUpDownColumns
ändert. -
UpdateDataGridView()
: Aktualisiert dieDataGridView
. -
ToolStripMenuItem
-Ereignismethoden wieClick
,Alignment
, undCopy
. -
DataGridViewMatrix_SizeChanged(object sender, EventArgs e)
: Wird aufgerufen, wenn sich die Größe derDataGridView
ändert. -
DataGridViewMatrix_CellValueChanged(object sender, DataGridViewCellEventArgs e)
: Wird aufgerufen, wenn sich der Zellwert in derDataGridView
ändert. -
DataGridViewMatrix_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
: Wird aufgerufen, wenn ein Bearbeitungskontrollfeld angezeigt wird. -
ConvertMatrixToLaTeX()
: Konvertiert die Matrix nach LaTeX. -
dataGridViewMatrix_KeyPress(object sender, KeyPressEventArgs e)
: Wird aufgerufen, wenn eine Taste in derDataGridView
gedrückt wird. -
InitializeComponent()
: Initialisiert die Komponenten der Form.
-
Main()
: Der Einstiegspunkt des Programms.