Suchergebnisse

Suchergebnisse 1-18 von insgesamt 18.

  • Benutzer-Avatarbild

    Name: SharpMath Beschreibung: SharpMath ist eine Mathebibliothek, die ich geschrieben habe, um mich sehr ausführlich in Vektoren und Matrizen einzuarbeiten. Daraus wurde dann ein bisschen mehr, sodass die Library neben Vektoren und Matrizen noch einen ExpressionParser, einen Solver für lineare Gleichungssysteme und einen Canvas beinhaltet. Ich habe sehr auf Abstraktion und generische Extensions gesetzt, damit es leicht fällt, entsprechend selber Unterklassen zu implementieren, die auf den Interf…

  • Benutzer-Avatarbild

    New-icon.png Update auf Version 0.5.3 - Implemented IEquatable<T> in Vector, Point and Matrix - Implemented custom, typified Clone-method instead of the one that ICloneable provides - Implemented all operators (+, -, *, ...) in the available base classes - Added methods Add and Subtract to Matrix and therefore abstracted the operators in the derived classes - Renamed Algorithm to Algorithms and made it static - Made FloatingNumber static - Added a class FloatingNumberExtensions that contains ext…

  • Benutzer-Avatarbild

    Das ist einfach die Verschiebung der Geraden, also das ​t in ​mx + t. Grüße

  • Benutzer-Avatarbild

    @ErfinderDesRades Habe Deinen Edit gerade gesehen, stimmt, das ist suboptimal. Ich werde das entsprechend vertauschen, wenn ich die Methode nicht sogar ganz entferne. @nafets Danke. Das Refactoring hat anscheinend nicht ganz funktioniert, weil ein UnitTest nicht angepasst wurde, aber das macht nichts, kann man ja ändern. Ich werde den PullRequest mergen und dann die Tage ein Update raushauen, je nachdem, wie das mit dem Polygon.ContainsPoint noch ausgeht. @Gonger96 Dankeschön. Ich werde mal nach…

  • Benutzer-Avatarbild

    Zitat von ErfinderDesRades: „aber was bringt einen dazu, solche Kommentare zu verfassen?“Guidelines von Microsoft? Was soll man da großartig erklären? Trotzdem gehört es dazu, das zu dokumentieren. Zitat von ErfinderDesRades: „Das kann glaub auch weg: [...] Wenn man eine neue Matrix will, soll man halt mit new eine erstellen.“Stimmt, danke. Zitat von ErfinderDesRades: „eine Bitte: Wärs evtl möglich, auf FW4.5 runterzugehen, und auf c#5?“Das Framework ist bereits .NET 4.0(?). Und nein, das bleibt…

  • Benutzer-Avatarbild

    @AliveDevil Das Problem ist, dass ich die Architektur anders hochgezogen habe. Ich habe sehr auf Vererbung und damit einfache Erweiterung gesetzt und das geht mit Strukturen nicht, auch wenn ich wusste, dass diese besser geeignet sind. So müsste ich halt dann mit lauter Extensions ran. Aber gut, das scheint in der Tat so zu sein. Ich werde dann diese Architektur in dem betreffenden Klassen nochmal neu aufbauen. Eine Vorlage habe ich ja schon. @Gonger96 Und wie genau? Ich sah dafür nur den Gauss-…

  • Benutzer-Avatarbild

    Achso. So hatte ich auch die Determinante umgesetzt. Bis zu einer festen Größe mit Vorlagen, dann mit der LaplaceExpansion. Danke, ich werd's mir mal in GCL anschauen und übersetzen. Grüße

  • Benutzer-Avatarbild

    Zitat von faxe1008: „- Invertierung - Determinante für irgendeine nxn Matrize rekursiv mit dem Laplace'schen Entwicklungssatz - Kofaktormatrix berechnen“Das ist doch schon implementiert. Das mit der Faktorisierung und dem Kern schaue ich mir mal an. Edit: Der Kern scheint sich relativ gut berechnen zu lassen, denn lineare GLeichungssystem kann SharpMath ja lösen. Ich bin allerdings eh gerade dabei alles umzuschreiben und haue gerade die gesamte Architektur auf den Kopf, da ich alles als struct h…

  • Benutzer-Avatarbild

    Referenzen dürfen dann natürlich nicht mehr benutzt werden, weshalb ich auf die entsprechenden Proeprties, wie M11, M12, ... etc. umsteigen werde. Natürlich alle readonly. @Higlav Okay. Aber was hat es mit Deinem 2. Punkt auf sich? Das sagt mir nichts. Grüße

  • Benutzer-Avatarbild

    Weil das Ganze Zeugs immutable sein soll. Sind sie zwar in MonoGame z. B. auch nicht, aber das ist eben eine Architektursache. Und wie gesagt, Referenzen gibt es dann nicht mehr, deswegen die M-Properties. Das ist mir schon klar, dass das zweidimensionale Array dann weg muss. Von daher lässt sich das relativ gut als Struktur realisieren. Grüße

  • Benutzer-Avatarbild

    Zitat von ErfinderDesRades: „also repräsentiert eine Matrix vonne Logik her wirklich einen einzelnen Wert, ähnlich int, double, etc.?“Ja klar, die Matrix repräsentiert bei mir nur double als Datentyp, nur, dass diese halt mehrfach in Form der Felder vorhanden sind. Also macht das schon imho Sinn. Zitat von ErfinderDesRades: „aber warum soll das immutable sein?“stackoverflow.com/questions/37…c-sharp-structs-immutable Zitat von ErfinderDesRades: „Mit Matrix sind speziell Transformations-Matritzen …

  • Benutzer-Avatarbild

    Das ist richtig, aber wie soll ich diese Extensions bauen, wenn ich Werte über den Indexer setzen muss? Und das wird wohl zwangsläufig so kommen, sobald ich einen neuen Vektor erstellen muss (wie z. B. bei Lerp etc.). Klar kann ich gewisse Methoden, die nur Skalare zurückgeben, dann direkt generisch implementieren, aber andere eben nicht. Das wäre dann halt so ein Gemisch und ob das so gut ist, weiß ich nicht. Grüße

  • Benutzer-Avatarbild

    Zitat von Solaris: „@Trade bitte nicht vergessen IEquatable<> zu implementieren“ vb-paradise.de/index.php/Attac…fb1237ba6d844d4599323a877 Alles gut. Edit: Achso, Du meintest das bisherige. Naja, hatte/hätte ich so oder so. Und SquareMatrix war einfach eine Zwischenschicht, die fällt durch die Strukturen eh weg. Okay, meine Entscheidung steht jetzt fest. Ich werde eine Klasse VectorUtils belassen und dort generische Methoden definieren. Entsprechende Extensions kommen natürlich auch. Da fehlen da…

  • Benutzer-Avatarbild

    Zitat von Solaris: „Im Prinzip "Idiotensicherheit/Guidelineumsetzung gegen Usability".“Genau das ist die Sache. Ich habe SharpMath ursprünglich entwickelt, damit es vielfältig genutzt werden kann und wollte die Architektur möglichst abstrakt halten, daher auch die Klassen. Mittlerweile erscheint es mir aber auch logischer, dass Wertetypen viel mehr Sinn machen und entsprechend ist die Abstraktion natürlich mit den Strukturen jetzt etwas eingeschränkt, aber das geht. Hingegen die Frage, ob mutabl…

  • Benutzer-Avatarbild

    New-icon.png Update auf Version 1.11.4 - Change all SharpMath.Geometry classes to structs and consequently, revise the whole architecture - Change Vector.ScalarProduct to VectorUtils.DotProduct<T> - Change Vector2.CrossProduct to Vector2.Perpendicular-property - Change Vector3.CrossProduct to Vector3.VectorProduct - Change Vector.IsParallelTo to VectorUtils.CheckForParallelism<T> - Change Vector.IsOrthogonalTo to VectorUtils.CheckForOrthogonality<T> - Change Vector.IsOrthonormalTo to VectorUtils…

  • Benutzer-Avatarbild

    Naja, VectorUtils.IsParallel(first, second); passt ja nicht so wirklich. Das müsste ja eher 'Are' sein. Und bei first.IsParallel(second) fehlt dann das 'To' schon irgendwie. Im zweiten Fall könnte man sogar noch verzichten, aber im Ersten klingt es imo schon etwas komisch. Das war der Anreiz dafür. Grüße

  • Benutzer-Avatarbild

    New-icon.png Update auf Version 1.14.5 - Added Canvas2D for representing functions and vectors graphically - Added FunctionWrapper for representing functions using Lambda-expressions - Added generic ISquareMatrix<T> interface for implementing type-specific ISquareMatrix-properties - Internal preparements for the Matrix.GetCore feature and some other functions - Changed the frameworks of the available test projects to .NET 4.0 - Code improvements - ... Danke an @Nikx, der das Canvas entwickelt un…

  • Benutzer-Avatarbild

    New-icon.png Update auf Version 1.14.7 - Fixed that constants (Math.E, Math.PI, ...) were not parsed correctly. Now they are handled differently to ensure that the interpretation is working properly. - Fixed that specific terms were not evaluated correctly. Now all kinds of combinations should evaluate correctly and deliver the right result. - Added specific exception throwing in Algorithms.ShuntingYard, if the terms don't satisfy formal, mathematical conditions. Expressions like e3, pi2 or sin(…