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:
4441188
Jetzt (Chat):
14 (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
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Werd das mal prüfen
20.12.2005, 23:26:16 Uhr
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Wie initialisiert ihr denn eure 3x3 Matrizen?
21.12.2005, 06:35:09 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
meinst du die standardinitialisierung?
die sieht so aus:

Code:
TMatrix3x3() 
        {
            (*this) = Identity();
        };


21.12.2005, 08:31:28 Uhr
DirectX 10
Kimmi Offline
ZFX'ler


Registriert seit:
10.10.2002

Schleswig-Holstein
93425079
Re: Komplette MatheBibliothekNach oben.
Könnt ihr bitte irgendwo dokumentieren, welche Art der Matrix-Indizierung Default wird? Sonst wird e s 1000% Anwenderfehler geben.

MfG Kimmi
21.12.2005, 10:04:15 Uhr
Kurzer Weblog
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Nein, ich meine wie ihr eure Matrizen mit den neun Werten füllt, die ihr da haben wollt. Weist ihr jeder Komponente einzeln den Wert zu, so A.matrix[1][2] = 5.0f; A.matrix[2][2] = 3.141f;
und so weiter, oder kann man da mit Klammern irgendein Array übergeben?
@Kimmi: Was meinst du mit Default?
21.12.2005, 23:02:17 Uhr
oese Offline
ZFX'ler


Registriert seit:
13.04.2004

Bayern
257965619
Re: Komplette MatheBibliothekNach oben.
ich bin immernoch für die variante, dass die matrix zeilenweise in nem großen array gespeichert wird, wie es bisher auch schon ist, und dass man nen vektor als matrix mit einer spalte und mehreren zeilen sieht, also genau andersrum als es bisher implementiert ist. wenn man dann doch mit zeilenvektoren arbeitet, das ist meistens eh nur bei der benutzung der d3d fixed function pipeline nötig oder zur kompatiblität, kann man die matrix ja immernoch transponieren. ich könnte in die vektorklassen ja noch ne methode ToRowMatrix einbauen, die dann ne referenz auf den vektor als TMatrixMxN liefert.
21.12.2005, 23:04:44 Uhr
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Ich fänd da auch n thematischen Zusammenhalt besser. Vektoren sind nun mal spezielle Matrizen. Fragt sich nur, wie man dann das Skalrprodukt und das Kreuzprodukt unterbringen kann.
21.12.2005, 23:07:26 Uhr
Kimmi Offline
ZFX'ler


Registriert seit:
10.10.2002

Schleswig-Holstein
93425079
Re: Komplette MatheBibliothekNach oben.
Wenn man nicht explizit die Indizierung der Matrix angibt, was ist default, spalten- oder zeileorientiert. Und welche Fassung muss nicht erst transponiert werden?

Ich gebe Matrizen komplett als Array an, bei Sparsematrizen versuhe ich die Werte einzeln zu setzen.

MfG Kimmi
21.12.2005, 23:08:49 Uhr
Kurzer Weblog
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
@oese:
ja kann man so stehen lassen, die D3D-Anordnung hat eigentlich keinen praktischen nutzen, von daher kann man sie auch weglassen.

das mit dem vector habe ich aber nicht ganz verstanden. es reicht doch wenn jede matrix eine GetRow und eine GetColumn methode hat.

@wassja:
verstehe die frage immernoch nicht ganz.
man hat doch die möglichkeit beides zu tun. um einzelne zuweisungen zu machen ist der ()-operator am besten, da man so noch gegen die arraygrenzen checken kann. welche variante der vielen möglichkeiten am ende verwendet ist doch jedem selbst überlassen.
21.12.2005, 23:10:28 Uhr
DirectX 10
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Zitat:

@wassja:
verstehe die frage immernoch nicht ganz.


Also:

Zitat:
Ich gebe Matrizen komplett als Array an


WIE GEHT DAS?? Ich brauche schlicht und ergreifend ein simples kleines Code-Beispiel!
Mehr will ich doch gar nicht.
21.12.2005, 23:21:29 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
na in der matrix3x3 ist doch einkonstruktor der das macht. da bekommt man einen pointer von "const T*" dessen inhalt man dann mit memcpy kopiert.
21.12.2005, 23:28:15 Uhr
DirectX 10
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Das Problem ist, diesen Pointer zu füllen:

Code:
double temp[25];


Man kann den jetzt so füllen:

Code:
temp[0] = 0.0f;
temp[1] = 1.0f;
temp[2] = 2.0f


und so weiter. Ich will das aber einfacher haben.
Vielleicht so?
Code:
temp = \"0.0f, 1.0f...\";

oder
Code:
temp = {0.0f, 1.0f, }

Das Problem ist, dass das alles bei mir fehlerhafte Ergebnisse liefert. WIE FÜLLE ICH DAS ARRAY. Das ist meine Frage.
21.12.2005, 23:33:14 Uhr
oese Offline
ZFX'ler


Registriert seit:
13.04.2004

Bayern
257965619
Re: Komplette MatheBibliothekNach oben.
Zitat von Richard Schubert:
@oese:

das mit dem vector habe ich aber nicht ganz verstanden. es reicht doch wenn jede matrix eine GetRow und eine GetColumn methode hat.



ich würd das ca. so umsetzen

Code:
// in TVectorN

TMatrixMxN& ToRowMatrix()
{
  return *(TMatrixMxN*)this;
}


damit kann man das dann auch andersrum mit matritzen multiplizieren.
ne direkte konvertierung in ne matrix mit einer spalte und n zeilen wär natürlich zusätzlich noch dabei
21.12.2005, 23:36:44 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
soweit ich weiß, kann man solch ein array nur bei der deklaration initialisieren. dann auch nur mit den geschweiften klammern. so hast du es doch auch schon gepostet.

dann einfach dem konstruktor übergeben.

Matrix3x3 muh( (float*)temp );


oese
aso, ja klar, das ist eine gut lösung.


1 Mal gendert, zuletzt am 21.12.2005, 23:40:42 Uhr von Richard Schubert.
21.12.2005, 23:38:10 Uhr
DirectX 10
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Also, ich glaub ich habs jetzt. In dem Operator ist wohl n Fehler. Den such ich wenn dann aber morgen.
Tschuldigung für all den Müll den ich gepostet habe.
Also: Die Zeilen die ich übergebe erden in die Spalten der Matrix gefüllt, was mich ja noch nicht mal so verwirrt hätte. Aber nach jedem letzten Spaltenelement wird das letzte Element wieder als Beginn der nächsten Spalte genommen. Da is wohl n kleiner Fehler. Ich kümmer mich da später drum.
21.12.2005, 23:45:43 Uhr
oese Offline
ZFX'ler


Registriert seit:
13.04.2004

Bayern
257965619
Re: Komplette MatheBibliothekNach oben.
@wassja:

sag mir bescheid, wenn du fertig bist mit den matritzen, dann kann ich die n bisschen umschreiben.
wenn du willst kann ich mich auch um die fehler in der ausgabe kümmern, dann kannst du schonmal wo anders weiterarbeiten
21.12.2005, 23:53:23 Uhr
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
An den Matrizen an sich wollte ich HNF und Inverse einbauen. Mehr eigentlich auch nicht. Da ich am Samstag aber eh in den Urlaub fahre, kannst du die Matrizen in der Zeit ruhig ummodeln. Wenn du weißt, wie man Determinanten von MxN Matrizen berechnet... das gibts halt auch noch nicht.
22.12.2005, 10:57:00 Uhr
Kimmi Offline
ZFX'ler


Registriert seit:
10.10.2002

Schleswig-Holstein
93425079
Re: Komplette MatheBibliothekNach oben.
@Wassja:
Ich weiss aufgrund des Default-Indizierungsschemas, dass die Matrix so reinkommen muss:
Code:
m11 m12 m13 m14
m21 m22 m23 m24
m31 m32 m33 m34
m41 m42 m43 m44

Um den C/C++ Array zu setzen, reicht ein einfacher memcpy:
Code:
const float array[16] = {
  1.0f, 0.0f, 0.0f, 0.0f,
  0.0f, 1.0f, 0.0f, 0.0f,
  0.0f, 0.0f, 1.0f, 0.0f,
  0.0f, 0.0f, 0.0f, 1.0f
};
class Matrix {
  float *m_pArray;
...
  void SetArray(float *pArray) {
    assert (NULL != pArray);
    memcpy(m_pArray, pArray, sizeof(float) * 16);
  }
...
Matrix m;
m.SetArray(&array[0]);
};

In meinem Beispiel ist das bei einer Identitäts-Matrix zwar egal, jedoch muss das nicht so sein. Ist zwar schon erklärt worden, aber doppelt hält besser.

Würden sie nun ein anderes Indizierungsschema nutzen, müsste man intern kurz transponieren:
Code:
void SetArray(float *pArray) {
    assert (NULL != pArray);
    memcpy(m_pArray, pArray, sizeof(float) * 16);
    if (this->m_Orientation!=DEFAULT)
      this->Transpose();
  }


MfG Kimmi

3 Mal gendert, zuletzt am 22.12.2005, 12:56:10 Uhr von Kimmi.
22.12.2005, 12:01:18 Uhr
Kurzer Weblog
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Danke, genau sowas wollte ich haben
22.12.2005, 12:41:25 Uhr
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
So, ich fahre morgen in den Urlaub, ich meld mich erst in ein paar Wochen zurück. Leider habe ich die inversen Matrizen nicht fertig bekommen, ich bin noch über die Nullzeilen am grübeln, aber da fällt mir übern Urlaub bestimmt was ein
Seid schön fleißig, dann haben wir bald die Weltformel
23.12.2005, 22:10:57 Uhr
LiquidAcid Offline
ZFX'ler


Registriert seit:
21.09.2003

Nordrhein-Westfalen
127432520
Re: Komplette MatheBibliothekNach oben.
Wenn du eine Nullzeilen/Nullspalte/linear abhängige Spalten hast, dann ist die Matrix sowieso nicht invertierbar.

cya
liquid
23.12.2005, 22:40:17 Uhr
CPP Kniffel
Wassja Offline
ZFX'ler


Registriert seit:
24.01.2005

Nordrhein-Westfalen
Re: Komplette MatheBibliothekNach oben.
Tschuldigung hab mich vertan
Ich mache grad die HNF und da müssen die Nullzeilen ja nach unten gestellt werden. Inverse kommt später.
23.12.2005, 22:53:53 Uhr
oese Offline
ZFX'ler


Registriert seit:
13.04.2004

Bayern
257965619
Re: Komplette MatheBibliothekNach oben.
hi leute, erstmal frohes neues jahr!
ich war mal wieder fleißig und hab die matritzen überarbeitet und aneinander angepasst.
manchmal war ich mir nicht ganz sicher bei den zeilen und spalten, ich hab sie auch bei ein paar von wassjas funktionen umgekehrt.
ich prüf das zwar noch nach, aber könntet ihr das bitte auch tun, nur zur sicherheit! in den nächsten tagen pack ich die 4x4 an, kommt natürlich im gleichen schema wie die anderen!
01.01.2006, 14:11:32 Uhr
Kovok Offline
ZFX'ler


Registriert seit:
19.10.2003

Nordrhein-Westfalen
335162660
Re: Komplette MatheBibliothekNach oben.
Moin,

habe gerade mit interesse diesen gesammten thread durchgelesn(naja die ersten 6 und letzten 3 seiten ). Ich habe da 2 fragen:

1. Wie weit seit ihr eigentlich damit, kann man noch irgendwo helfen?

2. unterstützt ihr auch interpolationen(die kann man immer gebrauchen)?
05.01.2006, 02:22:25 Uhr
Richard Schubert Offline
DX-Berater


Registriert seit:
05.12.2002

Berlin
85557876 rs@directx9.de
Re: Komplette MatheBibliothekNach oben.
1. ich glaube es gibt immer was zu tun
Die sechs (oder waren es sieben?) primitivkörper und dessen kollisionen fehlen leider immernoch. Der Code wurde uns in C# bereitgestellt. aber den muss erstmal jemand einpflegen. Wenn du Dazu Lust hättest wäre das natürlich toll.

2. Es sind Lineare, Bi- und Tri- Lineare Interpolation vorhanden, auch mit HermiteSmoothing wenn man das wünscht. wenn noch was fehlt sag bescheid.
05.01.2006, 10:45:02 Uhr
DirectX 10
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