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 . . . a 17 18 19 20 21 >
AutorThema
Mr.DX Offline
ZFX'ler


Registriert seit:
01.08.2002

Bayern
297101048
Re: Komplette MatheBibliothekNach oben.
Hat jemand eigentlich ein gutes Tut zu D3DXMatrixStack und eine eigene Implementierung von dieser MatrixStack? Ich habe bis jetzt nichts damit gemacht, soll aber sehr gut sein.
15.06.2004, 17:46:49 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
hab ich schon verwendet, ist sehr nützlich, sollte aber nicht sonderlich schwierig sein zu implementieren. am einfachsten wäre hier wieder ein template, so dass man am ende auch quaternions oder andere typen die den *operator haben damit verwenden könnte, auch wenn es vielleicht nicht immer sinn macht.
15.06.2004, 17:51:31 Uhr
DirectX 10
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
Verständisfrage zum Matrixstack:
-Bei Push wird die neue Matrix mit der alten multipliziert
-bei Pop wird die alte Matrix widerhergestellt
stimmt das so?

1 Mal gendert, zuletzt am 15.06.2004, 19:55:23 Uhr von Florianx.
15.06.2004, 19:55:10 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
die eigentliche vorgehensweise ist wie beim normalen stack. man könnte eigentlich ohne umschweife direkt von std::stack erben.

Push() // kopiert die oberste matrix (top == top-1)
MultMatrix( mymatrix ) // multipliziert die topmatrix mit mymatrix




1 Mal gendert, zuletzt am 15.06.2004, 20:25:35 Uhr von Richard Schubert.
15.06.2004, 20:25:00 Uhr
DirectX 10
Kimmi Offline
ZFX'ler


Registriert seit:
10.10.2002

Schleswig-Holstein
93425079
Re: Komplette MatheBibliothekNach oben.
Pragma once ist nicht portabel, also nicht so toll.
Wie sieht es mit CVS aus, wollen wir? Und wer auf der Patchwork- bzw. ZFXCE will denn da nun mitmachen?

Könnt eure Vorstellungen ja mal posten.

MfG Kimmi
15.06.2004, 21:54:47 Uhr
Kurzer Weblog
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

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

an sich ist CVS nicht notwending, da die einzelnen Aufgaben so verteilt sein sollten, dass niemals jemand was von jemand anderem verändern muss. aber natürlich können wir das machen, wenn noch irgendwo bei der ZFXCE nen ordner frei ist
15.06.2004, 22:41:53 Uhr
DirectX 10
Kimmi Offline
ZFX'ler


Registriert seit:
10.10.2002

Schleswig-Holstein
93425079
Re: Komplette MatheBibliothekNach oben.
Ok, ich werde versuchen, Enrico mal zu erwischen, der hat sich schliesslich scon mal die Mühe gemacht, die Mathelib zu redesignen. Allerdings fehlen noch Templates, und Verbesserungen sind eine feine Sache.

MfG Kimmi
16.06.2004, 09:18:31 Uhr
Kurzer Weblog
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
Wird das jetzt noch was mit der Mathe-Lib?
Wer würde denn alles aktiv mitarbeiten?
Richard Schubert
Florianx
Jemand von der CE? Wer ist den dort für Mathe verantwortlich?
Vom Patchwork-Project? Wer macht dort den Mathe-Teil?
Wie sieht das jetzt mit dem CVS aus, oder wo wollen wir das speichern?
25.06.2004, 16:35:56 Uhr
Kimmi Offline
ZFX'ler


Registriert seit:
10.10.2002

Schleswig-Holstein
93425079
Re: Komplette MatheBibliothekNach oben.
Von mir aus ja. Aus der ZFXCE kann ich oder der Enrico (er deutete allerdings an, nicht so motiviert zu sein) an der Mathe-Lib mistricken. Meine Bedingung wäre allerdings, dass sie auf Templates beruht (mit denen ich bedauerlicherweise noch nicht so viel Erfahrungen machen konnte, aber ich bin lernfähig). Wir sollten uns nur darüber klarwerden, wie wir vorgehen. Da fallen mir spontan folgende Punkte ein:
- Wer macht was (Vektoren, Matrizen, etc.).
- Wer schreibt Testanwendungen?
- Wo wird der Source wie verwaltet (braucht man cvs, reicht ein jeweiliger Release)
- Welche Plattformen sollen unterstützt werden bzw. sollen erst einmal nur ISO-C++ Mittel erlaubt sein?
- Wollen wir das Forum zur Koordination benutzen?

Da es schon einigen Source zum Mathe-Teil in der ZFXCE und im Patchwork-Projekt gibt, sollte man sich diesen zunächst einmal ansehen und den besseren Teil in Templates (sofern möglich) umschreiben.

Als Team-Leader schlage ich mal Richard vor, schliesslich war das seine Idee. Gleich vorweg, durch die Arbeit an der ZFXCE (es entstehen gerade einige Techdemos, das braucht hat auch ein wenig Zeit) kann ich nicht jeden Abend in die Tasten hauen.

Weitere Vorschläge, vergessene Dinge etc. ? Einfach schreien. Auch soll das hier kein Diktat eines Vorgehens sein, nur ein verbesserungsfähiger Vorschlag .

MfG Kimmi
25.06.2004, 16:53:58 Uhr
Kurzer Weblog
Enrico_ Offline
ZFX'ler


Registriert seit:
08.04.2003

Baden-Württemberg
72778726
Re: Komplette MatheBibliothekNach oben.
Wie Kimmi schon angedeutet hat, werd ich nicht an einer neuen Mathelib mitarbeiten. Wenn ihr das machen möchtet, nur zu. Meinetwegen kann die dann auch meine ersetzen.
Momentan hab ich wichtigeres zu tun, als schon wieder ne Mathelib schreiben...

Zitat:
- Wer schreibt Testanwendungen?

Die fallen von alleine an, sowie ich Demos für die CE schreibe....

Zitat:
Welche Plattformen sollen unterstützt werden bzw. sollen erst einmal nur ISO-C++ Mittel erlaubt sein?

Naja, wenn die CE die mitverwenden soll, dann brauchen wir auch Linux und Windows...

Bye
25.06.2004, 18:26:03 Uhr
Mastermind Offline
Knowledge-Admin


Registriert seit:
18.10.2002

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Hat denn nicht the Lord schon sowas für das Patchwork Proj. geschrieben?
25.06.2004, 18:52:08 Uhr
Work in Progress
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

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


jo bin einverstanden, auch wenn ich erst ab dem 17.07 so richtig loslegen kann, da jetzt die ganzen prüfungen anstehen. aber die sache kann ja trotzdem schonmal anlaufen.

ich würde mich bereit erklären den
Point3D (beliebige Position mit einstellbarer genauigkeit) umzusetzen und auch Testanwendungen zu schreiben die alles testen was da ist (oder auch vorhandene Anwendungen darauf umschreiben ).


25.06.2004, 18:58:48 Uhr
DirectX 10
TheLord Offline
ZFX'ler


Registriert seit:
15.01.2003

Nordrhein-Westfalen
260782128
Re: Komplette MatheBibliothekNach oben.
Ja, für PP hab ich bereits eine Matrixklasse (44) und Vektorklassen (2, 3, 4D) geschrieben. Sind alles natürlich Templates. Allerdings verwenden sie D3DX-Funktionen, dewegen ist das nicht wirklich portabel. Diese Funktionen befinden sich jedoch alle an einer Stelle und ließen sich daher schnell austauschen.
25.06.2004, 19:02:08 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

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

wenn es templates sind wie können die dann die d3dxfunktionen verwenden?
25.06.2004, 19:25:37 Uhr
DirectX 10
TheLord Offline
ZFX'ler


Registriert seit:
15.01.2003

Nordrhein-Westfalen
260782128
Re: Komplette MatheBibliothekNach oben.
Templatespezialisierung für floats. Bei double habe ich weiterhin "von Hand" gerechnet.
25.06.2004, 19:29:03 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
achso, das ist ja interessant, wie kann man so eine unterscheidung implementieren, könntest du ein kleines beispiel zeigen? nur mal so aus interesse.
25.06.2004, 19:53:01 Uhr
DirectX 10
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
template spezis sind ganz einfach:
Code:
template<class T>
Bla
{
//für alle Typen
};
template<>
Bla<float>
{
//speziell für float
}


Ich könnte die ganzen Util-Funktionen machen.
Ausserdem werd ich mal in der ZFXCE schauen, was man wiederverwenden kann.

1 Mal gendert, zuletzt am 25.06.2004, 22:07:47 Uhr von Florianx.
25.06.2004, 22:07:20 Uhr
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
ich hab mir die CE mal angeschaut, 4x4-Matrix und 3D-Vector sehen sehr gut aus. Ich könnte diese auf Template umschreiben und einfügen.

Machen wir jetzt eine Doxygen-Doku?
Soll ich mal versuchen, eine Vorlagen-Datei zu schreiben, woran man sich wegen Coding-conventions und dokumentation orientieren kann?
25.06.2004, 22:27:47 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

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


Machen wir jetzt eine Doxygen-Doku?
Soll ich mal versuchen, eine Vorlagen-Datei zu schreiben, woran man sich wegen Coding-conventions und dokumentation orientieren kann?


jau das wär nicht schlecht. so weit hatten wir uns ja schon ungefähr verständigt:

Code:
>>> Code Guidelines:

Indentation: Tabs (Tabstop = 4)
Dokumentation in deutsch nach Doxygen Richtlinien

#ifndef _ZFXMATH_INCLUDE_VECTOR3D_H_
#define _ZFXMATH_INCLUDE_VECTOR3D_H_

namespace ZFXMath
{
    template
    class TVector3D
    {
        public:
            T x, y, z;

            TVector3D();
            TVector3D( TVector2D, T z );

            Normalize();
    };
    
    
    typedef TVector3D<float>            CVector3D;
    typedef TVector3D<double>            CVector3Dd;
    typedef TVector3D<long double>        CVector3Dld;
    typedef TVector3D<int>                CVector3Di;
}

#endif //_ZFXMATH_INCLUDE_TVECTOR3D_H_





1 Mal gendert, zuletzt am 25.06.2004, 22:52:13 Uhr von Richard Schubert.
25.06.2004, 22:51:17 Uhr
DirectX 10
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
das T für Template ist ok, aber das C bei CVector3D find ich nicht schön.

CVector3Dd, ..ld und ..i braucht man doch nicht, oder? Da schreib ich lieber TVector3D etc, ist leichter lesbar. Wir könnten aber über ein ZFXMATH_PRECISION Flag festlegen, von welchen Typ CVector sein soll.

Was meint ihr dazu?
25.06.2004, 23:01:33 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

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

jo, das C kann man acuh weglassen.
aber die typen sind schon erforderlich da
1. TVector3D ist sehr viel umständlicher als Vector3Dd
2. man benötigt nicht nur einen typ. da Grafikarten nicht mit doubles umgehen können benötigt man irgendwann doch wieder single floats, sodass man eben wenigstens zwei benötigt.

aber die typedefs sind auch nicht zwingend, die kann eigentlich auch jeder für sich in seinem eigenen Projekt definieren, sodass auch am ende der namespace rausfällt. stimmt, lass weg den mist, das ist quark.
25.06.2004, 23:25:31 Uhr
DirectX 10
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
Was haltet ihr davon (schon mit doku):
Code:
/// \file
///
/// @brief TVector3D
///
/// TVector3D: 3-dimensionaler Vector

#ifndef _ZFXMATH_INCLUDE_VECTOR3D_H_
#define _ZFXMATH_INCLUDE_VECTOR3D_H_

namespace ZFXMath
{
    /// @brief 3-dimensionaler Vector
    ///
    /// 3-dimensionaler Vector mit den Komponenten x, y und z als Template-Type T.
    template
    class TVector3D
    {
    public:

        union
        {
            T val[3]; //< Komponente vom Template-Type T als Array
            struct
            {
                T x; //< x-Komponente vom Template-Type T
                T y; //< x-Komponente vom Template-Type T
                T z; //< x-Komponente vom Template-Type T
            };
        };

        /// @brief Konstruktor
        ///
        /// Standard-Konstruktor ohne Parameter 
        TVector3D();

        /// @brief Konstruktor
        ///
        /// Konstruktor mit den Komponenten x, y und z als Parameter 
        TVector3D( T& x, T& y, T& z );

        /// @brief Normalisiert den Vector
        ///
        /// Vector wird normalisiert
        /// d.h. er wird auf die Länge 1 skaliert
        Normalize();
    };
}

#endif //_ZFXMATH_INCLUDE_VECTOR3D_H_
25.06.2004, 23:33:17 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
jo schon ganz gut, wobei das wohl nen bisserl übertrieben ist:

Zitat:
T x; //< x-Komponente vom Template-Type T
T y; //< x-Komponente vom Template-Type T
T z; //< x-Komponente vom Template-Type T


und muss das nicht

TVector3D( const T& x, const T& y, const T& z );

heißen?
25.06.2004, 23:57:30 Uhr
DirectX 10
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
kann ja schonmal nicht schaden, wenn wir alle aufgaben verteilen auch wenn die programming guidelines noch nicht fertig sind.

so siehts monentan aus, ein paar sachen sind noch nicht verteilt. wäre toll wenn noch ein paar mitmachen würden.

Code:
>>> Tasks:

Wichtige Konstanten (PI, 2PI, ein MaxValue und ein Epsilon, etc. )
TMatrix4x4
TMatrixStack
TVector2D
TVector3D
TVector4D
Util-Funktionen 
TPoint3D
TPlane - TFrustum - TSphere - TAABB - TOOBB - TRay - TPolygon
TQuarternion
Utils (min, max, clamp, sin, ..., sqrt, log, ..., round, ... noise, etc.)



>>> Task Allocation:


TheLord:    TMatrix4x4, TVector2D, TVector3D, TVector4D
Florianx:    Util-Funktionen, TMultiplyStack (typedef TMultiplyStack> TMatrix4x4Stack)
Richard:     TPoint3D, Testapplikationen
Kimmi:          Testapplikationen


2 Mal gendert, zuletzt am 28.06.2004, 09:32:36 Uhr von Richard Schubert.
26.06.2004, 19:54:46 Uhr
DirectX 10
Florianx Offline
ZFX'ler


Registriert seit:
27.02.2002

Bayern
Re: Komplette MatheBibliothekNach oben.
Ich kann auch noch Matrixstack machen.

@Richard Schubert: Util-Funktionen == Mini-Utils?

Vielleicht kann ich auch noch AABB machen, von den anderen hab ich keine Ahnung.
26.06.2004, 21:40:22 Uhr
GepinntSeite: < 1 2 3 4 5 . . . a 17 18 19 20 21 >


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