Suchergebnisse

Suchergebnisse 1-30 von insgesamt 50.

  • Benutzer-Avatarbild

    Beschreibung: Gleich vorneweg: diese Bibliothek habe ich geschrieben, um meine Fähigkeiten in C# und meinen allgemeinen Codestil zu verbessern. Sie hat zwar auch einen praktischen Nutzen, jedoch gehe ich nicht davon aus, dass das in großen Projekten produktiv eingesetzt werden wird (weder von mir, noch von jemand anderem). Deswegen habe ich es OpenSource gemacht, da der Code wohl der interessante Teil an der Sache ist. Die Bibliothek enthält Klassen, die für die Lösung kompliziertere mathematisc…

  • Benutzer-Avatarbild

    Da mir der Beispielcode für meine Verhältnisse wirklich zu ranzig war, habe ich die Testanwendung nochmal komplett neu geschrieben. Ich hab auch gleich noch Vollbildmodus und FPS-Counter eingebaut. Den Code habe ich ebenfalls mit dem neuen ausgetauscht. Jetzt wird glaube ich auch leichter ersichtlich, wie man die Lib benutzt.

  • Benutzer-Avatarbild

    @Telcrome Danke für dein Lob. Wenn ich noch Sachen finde, die dazu passen, dann werde ich das sicherlich auch noch mit einbauen. Möglicherweise erweitere ich das ganze auch noch um Geometrie (also Polygonkollision usw. , hab da schon nen Source in VB rumfliegen). @Trudi Laut den Framework Designgiudlines sollte man einen impliziten Konvertierungsoperator nur einsetzen, wenn der Zieltyp alle Funktionalität des Ausgangstyps besitzt. Das heißt als, von Point nach Vector2 wäre in Ordnung, anders rum…

  • Benutzer-Avatarbild

    @RodFromGermany Wie sollte ich das deiner Meinung nach denn am besten umsetzen? Ich hab das weggelassen, weil ich diese Unterscheidung nicht ordentlich realisieren konnte. Es ist ja eigentlich nur eine Unterscheidung nach Einsatzzweck, die Mathematik bleibt die gleiche. @~blaze~ Das ist ne gute Idee, wird nur viel Schreibarbeit. Aber wenn ich die Matrix als Interface deklariere, dann hab ich doch keine Möglichkeit den Inhalt zu speichern, oder? Das würde doch dann bedeuten, ich müsste dann gleic…

  • Benutzer-Avatarbild

    Ok, danke für die Hilfe. Ich werde das dann mal in Angriff nehmen. Edit: @~blaze~ Ok, ich hab das gerad mal versucht und hatte aber Probleme damit, dass das Interface generisch ist. Viele der Operationen sind halt nur mit Zahlentypen machbar, deswegen kann ich keine Generischen Extensions dafür schreiben. Gibts da was, das ich tun kann?

  • Benutzer-Avatarbild

    So würde es gehen und so werde ich es jetzt auch machen. Aber dann frage ich mich, wofür das generische Interface überhaupt da sein soll, wenn man die Extensions eh nur für einen bestimmten Typ schreibt. IEnumerable zeichnet ja z.B. aus, dass es für jeden Typ die gleichen Funktionen bietet, nicht nur für die Grunddatentypen.

  • Benutzer-Avatarbild

    Also noch mal vielen Dank für deine Hilfe, aber das wird mir gerade zu kompliziert. Ich werde jetzt einfach ein Interface mit Double nehmen, dann komm ich mit den Extensions auch klar (hab da leider noch nicht so viel Erfahrung wie du).

  • Benutzer-Avatarbild

    Das war mir schon klar, aber ich bekomme wegen diesen Interfaces manche Sachen nicht mehr hin, da mir ja jetzt die Basisklasse Matrix fehlt, und ich somit keine Matrizen von beliebiger Größe mehr erstellen kann. Mir nützen die ganzen Extensions nicht, wenn ich nur Interfaces habe, aber keine Klasse, die die Eigenschaften auch tatsächlich implementiert. Und wenn ich eine solche hinzufüge und sie von IMatrix erben lasse, dann kann ich mir das Interface auch gleich wieder sparen, da man dann wieder…

  • Benutzer-Avatarbild

    So wollte ich es zunächst auch machen, aber dann bekomme ich das Problem, dass ich nach bestimmten Operation, die in Extensions ausgeführt werden, danach nicht mehr die Art Matrix rausbekomme, die ich eingebe, sondern immer eine Instanz dieser Klasse. Außerdem kann ich dann keine Operatoren mehr verwenden, weil die Structures nicht von der Matrix-klasse erben und ich somit für jede Structure eine eigene Überladung schreiben müsste. Vielleicht lässt sich das auch ganz einfach lösen, und ich unter…

  • Benutzer-Avatarbild

    Ich glaube ich ändere einfach die Klassen in Strukturen und gut ist. Ich hab ein paar Tage intensiv daran gearbeitet und möchte jetzt ungern wieder alles neu machen (und dann auch noch in doppelter Ausführung), zumal ich wahrscheinlich mit den Interfaces niemals die selbe Qualität hinbekommen würde, wie momentan mit den Klassen (da entsteht bei mir gerade nur Clusterfuck).

  • Benutzer-Avatarbild

    Hab ich auch gemacht und grade wieder zurückkopiert. Ansonsten wäre die Lib jetzt futsch, da wirklich überhaupt nichts mehr funktioniert hat.

  • Benutzer-Avatarbild

    Ach übrigens, um das Prinzip mit dem Interface auf die Vektoren anzuwenden bin ich nicht zu blöd. Das wird also bald implementiert sein.

  • Benutzer-Avatarbild

    Geändert wurde: - Vektoren auf Basis eines Interfaces komplett neu strukturiert - für Projektion 3D -> 2D ist jetzt nicht mehr der MathHelper zuständig, sondern Vector4 (wegen objektorientiertem Konzept und so) - die Squarematrix hat jetzt eine neue Eigenschaft "IsSingular" und wird beim Berechnen der Inversen eine Exception feuern, wenn diese true ist - Namensänderungen für einige Methoden (ergeben jetzt unter anderem mehr Sinn) Außerdem habe ich den Beispielcode aktualisiert und mit Kommentare…

  • Benutzer-Avatarbild

    Großes Update

    Artentus - - Libraries / Controls

    Beitrag

    Da ich hier ja viele Verbesserungsvorschläge erhalten habe, und auch selbst nicht ganz mit der Lib zufrieden war, habe ich eine komplett überarbeitete Version 2.0 geschrieben. Hier die Änderungen im Detail: - Das komplette Konzept der Vektoren wurde von Klasse zu Interface geändert. Die Grundfunktionen sind nun als Extensions implementiert, und die ehemaligen Klassen sind jetzt Strukturen. - Ich fand, dass einfache Neuimplementationen von PointF, SizeF und RectangleF mit doppelter Genauigkeit ei…

  • Benutzer-Avatarbild

    @paulkoch95 Der steht gleich im ersten Post unter "Benutzung".

  • Benutzer-Avatarbild

    @faxe1008 Du verlangst ja Sachen. 1, 3 und 4 könnte ich in 2D realisieren. Ich werd mich dazu aber mal schlau machen und sehen was ich tun kann, danke für den Vorschlag.

  • Benutzer-Avatarbild

    OK, das hab ich jetzt nicht so ganz verstanden. Du musst wissen, ich bin grade in der 10. und da haben wird noch gar nichts mit Vektoren gemacht. Deswegen musste ich mir alles im Internet zusammentragen und selbst beibringen.

  • Benutzer-Avatarbild

    @nafets3646 Dann hast du wohl Glück. Bei uns kommen 90% der Schüler schon nicht auf Logarithmen klar.

  • Benutzer-Avatarbild

    OK, sobald ich mit der neuen Version fertig bin lade ich die Projektmappe auch als ZIP hoch, damit man das im Studio gleich öffnen kann. Ich werde mich aber erstmal selbst dran versuchen.

  • Benutzer-Avatarbild

    Update

    Artentus - - Libraries / Controls

    Beitrag

    In diesem Update gab es folgende Neuerungen/Änderungen: - Mehr Polygonarten hinzugefügt - Line3D-Klasse hinzugefügt - IVector implementiert nun IEquatable - Effizientere Methode zur Bestimmung der konvexen Hülle (Graham Scan) Das komplette VS-Projekt gibt es jetzt auch im Startpost zum Download.

  • Benutzer-Avatarbild

    @faxe1008 Das bedeutet einfach nur, dass alle Vektoren nun eine Equals-Methode bereitstellen. Sie ist bei allen gleich implementiert und ruft Vector.CheckForEquality auf. Das ist meine Lösung, nachdem Extension Operatoren ja nicht funktionieren (vielleicht hast du meinen Thread dazu gesehen).

  • Benutzer-Avatarbild

    Update

    Artentus - - Libraries / Controls

    Beitrag

    In diesem Update ist nur eine, wenn auch interessante, Funktion hinzugekommen: mit der Lib können nun lineare Gleichungssystem gelöst werden. Verwendet wird dabei der Gauß-Jordan-Algorithmus (danke ~blaze~), der nun auch dazu dient, die Inverse Matrix zu bilden. Dies sollte einen signifikanten Performanceschub geben, vor allem bei großen Matrizen.

  • Benutzer-Avatarbild

    Update

    Artentus - - Libraries / Controls

    Beitrag

    Der Thread von ErfinderDesRades in den Tipps und Tricks, in dem er beschreibt, wie man einen Formelparser programmiert, hat mich auf die Idee gebracht, sowas auch in meinen MathUtils einzubauen (natürlich selbst gecodet). Deswegen können ab sofort mit MathHelper.Eval Formeln geparsed werden. Der Algorithmus beherrscht die Operatoren/Funktionen: +, -, *, /, ^, Sqrt, Root, Sin, Cos, Tan, Asin, Acos, Atan, SinH, CosH, TanH, Ln, Log, Abs, Int. Geschwindigkeitstest mit je 100000 Versuchen: Quellcode …

  • Benutzer-Avatarbild

    Wichtig

    Artentus - - Libraries / Controls

    Beitrag

    Aufgrund einiger Bugs im Formelparser sah ich mich gezwungen, mich nochmal da dranzusetzen. Ich habe gleich auch noch den Funktionsumfang erweitert und den Code besser strukturiert.

  • Benutzer-Avatarbild

    Nächstes Update

    Artentus - - Libraries / Controls

    Beitrag

    Es gab schon wieder einen kritischen Bug im Formelparser. Hoffentlich hört das mal irgendwann auf. Jedenfalls ist er behoben und ich weiß jetzt, dass man niemals dies tun sollte, um einen Stack in eine Liste zu leeren: C-Quellcode (2 Zeilen) Nebenbei habe ich den Code auch noch etwas optimiert und umstrukturiert. Der ganze Parser-Stuff ist jetzt in einer eigenen Klasse Parser. Außerdem habe ich den fehlenden Mod-Operator % hinzugefügt. Ferner ist das Dezimaltrennzeichen nun von der Systemsprache…

  • Benutzer-Avatarbild

    Update

    Artentus - - Libraries / Controls

    Beitrag

    Nach langer Zeit hab ich mal wieder was hieran weitergearbeitet. Dazugekommen sind eine Matrix3x3-Klasse, die wie die Matrix4x4 nur für 2D-Vektoren funktioniert, und eine Rational-Klasse. Diese kann, wie der Name schon sagt, rationale Zahlen darstellen, und zwar in beliebiger Genauigkeit. Sie ist in ihrem Verhalten an den BigInteger aus dem System.Numerics-Namespace angelehnt. Außerdem habe ich einige Funktionen bei den Vektoren verbessert, so dass man sie jetzt leichter verwenden kann.

  • Benutzer-Avatarbild

    Sowas würde ich auch nicht mal eben schnell machen. Trotzdem vielen Dank.

  • Benutzer-Avatarbild

    Nein, steht das irgendwo? Der Parser parst Funktionsterme, mehr nicht.

  • Benutzer-Avatarbild

    Es ist im Showroom, weil man auch einfach die fertige DLL runterladen und dann benutzen kann. Den Source von GitHub runterladen geht so: (Versteckter Text)Dann bekommt man genau das selbe, wie wenn man im Startpost die Projektdateien runterlädt. Ich habe absichtlich nur MathUtils in das Archiv gepackt, denn 1. ist die Testanwendung schon uralt und ich habe sie seit dem ersten Release nicht mehr geupdatet und 2. ist die Projektmappe inzwischen zugemüllt mit allen möglichen kleinen Anwendungen, di…

  • Benutzer-Avatarbild

    Das ist eine Lib für spezielle mathematische Funktionen, was willst du da mit ner blöden Testanwendung? Das Zeug hat nur nen Nutzen, wenn du ein sehr spezielles Problem hast, aus einer Testanwendung kannst du nichts schließen. Um die Lib zu verwenden braucht man halt auch das entsprechende Mathematische Wissen, das lässt sich durch eine Testanwendung nicht vermitteln. Und wenn du es hast, dann sind alle Funktionen selbsterklärend, zumal ich sie alle sehr ausführlich mit XML-Kommentaren verstehen…