ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4410597
Jetzt (Chat):
13 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
Algorithmen und Datenstrukturen
Komplette MatheBibliothek
GepinntSeite: < 1 2 3 4 5 6 7 . . . b 17 18 19 20 21 >
AutorThema
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.

jo das wäre wirklich nett, auch wenn ich das mit dem TortoiseCVS noch nicht so ganz schnalle, wäre das eine übersichtlichere lösung für alle.
24.07.2004, 19:34:55 Uhr
DirectX 10
Seraph Offline
Administrator


Registriert seit:
18.04.2002

England
Re: Komplette MatheBibliothekNach oben.
ankon hat hier eine kleine Anleitung zur Nutzung von CS geschrieben.

Dann bräuchte ich nur noch die Namen. Am besten Du teilst sie mir per PM mit, damit der Thread hier nicht zu unübersichtlich wird.
24.07.2004, 19:52:51 Uhr
ZFX - 3D Entertainment
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Komplette MatheBibliothekNach oben.
würd gern mitmachen Hab ja sowieso momentan Sommerferien
24.07.2004, 21:33:11 Uhr
GermanGameDev
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
Das CVS ist jetzt aktiv, vielen Dank an Seraph, für seine Mühe.

Die Einstellungen sind die gleichen wie bei der ZFXCE mit zwei Ausnahmen:

Pfad: /cvs/mathlib
Modul: ZFXMath

CVS Anleitung

Ran ans Werk!
25.07.2004, 09:07:33 Uhr
DirectX 10
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
Wenn wir die Doku auf Deutsch machen, sollte auch die Readme Deutsch sein, oder?
Oder wollen wir versuchen, alles 2-sprachig zu machen?

Brauchen wir eigentlich irgendeine Lizenz? LGPL?

sollten wir eine bestimmte Verzeichnisstruktur verwenden? z.B. /include für .h & .inl, /src für .cpp und /doc für Dokumentation
25.07.2004, 16:03:01 Uhr
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Komplette MatheBibliothekNach oben.
Richard Schubbert
Wir sollten noch ne Datei draufstopfen mit Aufgabenbereiche, wer was macht, sonst wird das ein Durcheinander

Florianx
Du schreibst mir aus den Fingern

-Patrick
25.07.2004, 16:11:38 Uhr
GermanGameDev
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
Zitat von Florianx:
Wenn wir die Doku auf Deutsch machen, sollte auch die Readme Deutsch sein, oder?
Oder wollen wir versuchen, alles 2-sprachig zu machen?


jo, hast eigentlich recht, ich bin es nur gewohnt alles in english zu machen.
aber vielleicht sollten wir das nochmal überdenken, schließlich scheint es keine vernünftige freie mathlib zu geben, daher sollten wir das ganze vielleicht ein wenig internationaler angehen?

Zitat von Florianx:

Brauchen wir eigentlich irgendeine Lizenz? LGPL?


das ist was für kapitalisten
ne im ernst, ich wüsste jetzt nicht warum...

Zitat von Florianx:

sollten wir eine bestimmte Verzeichnisstruktur verwenden? z.B. /include für .h & .inl, /src für .cpp und /doc für Dokumentation


.cpp ham wir nicht, ist auch logisch, da man die sonst mit in sein projekt einbinden müsste.
doc ham wir ja schon, der rest kann aber ins include verzeichnis, das stimmt.

Zitat von Patrick:
Wir sollten noch ne Datei draufstopfen mit Aufgabenbereiche, wer was macht, sonst wird das ein Durcheinander

kommt sofort
25.07.2004, 17:25:33 Uhr
DirectX 10
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
Zitat:

.cpp ham wir nicht, ist auch logisch, da man die sonst mit in sein projekt einbinden müsste.


Ich finde, wir sollten die längeren Funktionen schon in eine .cpp Datei verwenden.

Zitat:

aber vielleicht sollten wir das nochmal überdenken, schließlich scheint es keine vernünftige freie mathlib zu geben, daher sollten wir das ganze vielleicht ein wenig internationaler angehen?

Ich schau mal, ob und wie mit Doxygen ein mehrsprachige Doku möglich ist. Dann könnten wir, falls es kein zu großer Aufwand ist, Englisch und Deutsch verwenden.

Wer kann mal eine Doxygen-Konfig machen?
25.07.2004, 18:14:10 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
Zitat:
Ich finde, wir sollten die längeren Funktionen schon in eine .cpp Datei verwenden.


wir haben nicht sonderlich viele klassen die keine templates sind, fage mich daher wie du solche funktionen in eine cpp bekommen willst.

Zitat:
Wer kann mal eine Doxygen-Konfig machen?

ich kenne mich da überhaupt nicht aus. gibts nich was einfacheres wie javadoc für c++?
25.07.2004, 18:20:49 Uhr
DirectX 10
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
an die template hab ich nicht gedacht... Dann brauchen wir keine .cpp-Dateien

Doxygen ist eine Weiterentwickung von Javadoc mit Unterstützung für C++, Java, PHP und ähnliche Sprachen. Ich werd mal eine Konfig machen, kenn mich aber nicht besonders aus.
25.07.2004, 18:28:46 Uhr
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Komplette MatheBibliothekNach oben.
Hi,

mir sind da noch paar Sachen eingefallen:

1. Darf die MathLib exceptions zurückwerfen? wenn ja von welchem Typ oder nur ein Assert? (Assert ist relativ ungenau oder?)

Wegen solchen fällen:
Code:
template<int M, int N> inline void TMatrix::identity (void)
    {
            // Matrix _muss_ Quadratisch sein
        assert (M == N);

            // alles auf 0 setzen
        memset ((*this).matrix, 0, sizeof(float)*M*N);

            // Hauptdiagonale auf 1 setzen
        for (int i=0; ithis).matrix[i][i] = 1.0f;
        }
    }

oder einer Division durch 0.

2. Mir ist eben aufgefallen das ich auf meinem .NET compiler bei ZeroMemory einen Absturz bekomme und bei anderen Compilern nicht. Ich finde diesen Fehler sollte man nicht auf sich beruhen lassen, drum hab ich mal auf die schnelle bei Google infos gesucht um ein paar Speicherfunktionen zu schreiben.

Die sind in der memory.h im verzeichnis und funktioniert bei mir auf dem DJGPP, BloodSheet, VC++6 und .NET einwandfrei.

3. Das Dateilayout ist irgendwie komisch? ich mein so ein Header ist nicht sehr aussagekräftig:
Code:
/// \file
///
/// @brief Basis-Mathefunktionen und Konstanten
///
/// Konstanten:    DELTA, E, PI, SQRT_2,
///                LOG_2_E, LOG_10_E, LOG_E_2, LOG_E_10
/// Funktionen:    RadToDeg, DegToRad, Mod, Abs,
///                Sin, Cos, Tan, ASin, ACos, ATan,
///                Sqrt, Pow2, Pow, Log, LogE, Log10,
///                Round, RoundUp,    RoundDown,
///                Min, Max, Clamp, Sign

da fänd ich sowas in der art besser:
Code:
// Datei:            CBlit.h
// //////////////////////////////////////////////////////////////////////////////////
// Autor:            Patrick Ullmann                                © Xarent Interactive
// Erstellt:        08.07.04
// Änderungen:        11.07.04    (Patrick)    blit-Funktion durch ISSE beschleunigt
//            08.07.04    (Patrick)    Datei erstellt
// //////////////////////////////////////////////////////////////////////////////////
// Beschreibung:    Bitmapklasse

#ifndef _CBITMAP_H_
#define _CBITMAP_H_

// I N C L U D E S //////////////////////////////////////////////////////////////////
#include \"vega_types.h\"
#include \"CException.h\"

// S T R U K T U R E N //////////////////////////////////////////////////////////////

// usw...


Was meint ihr?

-Patrick
25.07.2004, 20:19:21 Uhr
GermanGameDev
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
1.
die asserts sind an dieser stelle schon genau richtig. in diesem fall geht es um fehler die schon beim kompilieren entstehen. man kann also die assert-meldungen durch korrektes verwenden der objekte vermeiden.
exceptions sind wirklich nur für laufzeitfehler geeignet, die man nicht zu 100% ausschließen kann.

2.
ich hab noch keine probleme in der richtung festgestellt, ist aber eine weitere untersuchung wert.

3.
das ist doch für doxygen, wenn wir uns besser mit CVS auskennen würden, könnten wir auch solche sachen wie letzte änderung und ähnliches automatisch einfügen lassen, ich weiß aber nicht wie die schlüsselwörter dafür sind... müsste man mal googeln, was aber eigentlich nicht so wichtig ist.

1 Mal gendert, zuletzt am 25.07.2004, 20:37:22 Uhr von Richard Schubert.
25.07.2004, 20:36:03 Uhr
DirectX 10
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Komplette MatheBibliothekNach oben.
aso wusste net das das von Doxygen ist, ich erstell meine Dateien immer so mit einem kleinen Tool von mir

Naja wusste ich net, ich fands nur grauenhaft ineffizient
25.07.2004, 20:39:01 Uhr
GermanGameDev
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
Also der Text am Anfang der Header ist der Text, der in der Doku bei der Datei steht. Ich werd schaun, dass wir Morgen die erste Doku zum testen haben.
25.07.2004, 21:58:23 Uhr
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Komplette MatheBibliothekNach oben.
Zitat von Florianx:
Also der Text am Anfang der Header ist der Text, der in der Doku bei der Datei steht. Ich werd schaun, dass wir Morgen die erste Doku zum testen haben.


Tu du das Ich versuch in der Zeit mal die TMatrixMxN ans laufen zu bekommen! Nur das Problem ist die Multiplikation Hm naja wird schon schief gehen
25.07.2004, 22:15:01 Uhr
GermanGameDev
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.

wo ist denn das problem bei der multiplikation?
du hast es doch schon sinngemäß durch die deklaration eingeschränkt... passt doch?!
25.07.2004, 22:23:17 Uhr
DirectX 10
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Komplette MatheBibliothekNach oben.
naja wenn ich jetzt eine 3x4 mit einer 2x3 von rechts multipliziere bekomme ich als ergebnis eine 2x4 matrix.

darin liegt bei mir der knackpunkt!

und das mit identity, da bin ich mir noch nicht sicher, wars nicht bei anderen matrizen wie z.B. einer 5x3 matrix so:

Code:
1 0 0 0 0
0 1 0 0 0
0 0 1 1 1


oder habe ich da in Mathe nicht so ganz aufgepasst? Wenn doch, dann ist das Assert ja falsch. dann muss ich ja erst die Hauptdiagonale mit einsen füllen und dann den rest der letzten Zeile ab dem letzten Spalteneintrag, gell?

drum ist der identity code nicht ganz richtig, wenn da nach einer Quadratischen Matrix gefordert ist.

Oder hab ich mich da vertan?
25.07.2004, 22:59:49 Uhr
GermanGameDev
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.

das mit der Einheitsmatrix weiß ich auch nicht, aber jetzt wo du es sagst, muss das identity aus dem konstruktor raus, denn sonst könnte man nie asymmetrische matrizen bauen, solange das assert da noch steht.

3x4 * 2x3 ist doch nach deiner deklaration garnicht möglich! aber zum beispiel 3x4 * 4x3 und das ergibt dann eine 3x3 matrix, das ist in ordnung.
25.07.2004, 23:04:51 Uhr
DirectX 10
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Komplette MatheBibliothekNach oben.
hmmm das mit der deklaration hab ich gar nicht in betracht gezogen? hm..... *denk*

zum Thema Identity: Ich hab mal in mein altes Mathebuch geguckt, da steht das ne Identity so aufgebaut ist:
Code:
1 0 0 0 0
0 1 0 0 0
0 0 1 1 1

// bzw.

1 0 0
0 1 0
0 0 1
0 0 1
0 0 1


Dann noch eine frage: Wenn man eine matriz erstellt, soll sie identity sein oder zero? bzw. was ist die "grundform"?

1 Mal gendert, zuletzt am 25.07.2004, 23:16:45 Uhr von Patrick.
25.07.2004, 23:11:16 Uhr
GermanGameDev
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
Zitat:
Dann noch eine frage: Wenn man eine matriz erstellt, soll sie identity sein oder zero? bzw. was ist die "grundform"?


ich würde auf undefiniert setzen (also nix tun im kosntruktor), das ist sonst auch überall der fall, da ein aufwändiger konstruktor sonst stören kann.
26.07.2004, 07:27:12 Uhr
DirectX 10
Kimmi Offline
ZFX'ler


Registriert seit:
10.10.2002

Schleswig-Holstein
93425079
Re: Komplette MatheBibliothekNach oben.
Wenn die aktuelle Revision des Files vom cvs eingeführt werden soll, reicht ein einfache $Id$, dort wird dann Revisionsnummer, Datum und Autor der letzten Änderung eingetragen.
Die Patchworker haben so etwas in ihren Headers, einfach mal ausspionieren.
Wenn Matrizen erstellt wurden, sollten sie IMHO genullt werden. Eine Identitätsmatrize brauch man nicht immer, eine initialisierte Matrize beugt Fehlern vor.

MfG Kimmi
26.07.2004, 09:17:48 Uhr
Kurzer Weblog
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.

ah danke, das probier ich mal aus.

meistesn setzt man die matrizen doch eh über eine funktion komplett. einzelne werte verändert man doch nicht mir der hand. und wenn ne 0 in den einzelnen elementen steht beugt das doch keinen fehlern vor, die sind vielleicht genauso falsch wie nicht initialisierte werte. wer jedenfalls mit nicht initialisierten (oder auch null initialisierten) werten rechnen möchte, kann das gerne machen, aber schön ist der stil nicht. vielleicht sollte einfach ein konstruktor her dem man ein wert übergibt?
26.07.2004, 09:53:19 Uhr
DirectX 10
Kimmi Offline
ZFX'ler


Registriert seit:
10.10.2002

Schleswig-Holstein
93425079
Re: Komplette MatheBibliothekNach oben.
Wenn man z.B. eine Bandmatrize hat, ist es der Normalfall, dass ein Grossteil der Matrize mit Nullen belegt ist, Ausnahmen bildet dann nat. die Bandstruktur. Und da eine Mathematik-Lib nicht nur für 3D-Probleme geeignet sein sollte, fände ich das Initialisieren mittels eines vorgegebenen Wertes als optionalen Konstruktor für sinnvoll. Einige Beispiele für sinnige Vorbesetzungen:
- Bool-Matrize, um Interaktion bzw. Zugehörigkeit darstellen zu können (Erst mal alle Elemente auf false).
- Bandmatrize, die erst während einer Iteration mit Werten versorgt wird, Bandbreite ermittelt man aus den nicht 0-Elementen.
- Evtl. Dependencies, da fällt mir aber gerade kein schnell zu erklärendes Beispiel ein.

MfG Kimmi
-
26.07.2004, 10:54:57 Uhr
Kurzer Weblog
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.

jo, klingt vernünftig, aber der defaultkonstruktor sollte trotzdem nichts machen.
muss mal halt ne 0 oder nen false beim konstruktor übergeben, daran wird keiner zu grunde gehen, gell?!
26.07.2004, 11:12:54 Uhr
DirectX 10
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Komplette MatheBibliothekNach oben.
Zitat von Richard Schubert:

jo, klingt vernünftig, aber der defaultkonstruktor sollte trotzdem nichts machen.
muss mal halt ne 0 oder nen false beim konstruktor übergeben, daran wird keiner zu grunde gehen, gell?!


Hi,

ich überlade einfach die Konstruktoren und der Defaultkonstruktor mach ich ne Zero-Matrix, ich find das jedenfalls besser als wenn nur die initialisierungswerte in der Matrix stehen.

-Patrick
26.07.2004, 11:34:33 Uhr
GermanGameDev
GepinntSeite: < 1 2 3 4 5 6 7 . . . b 17 18 19 20 21 >


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel