Projekt Mehrkörpersysteme, BCB Programmierer gesucht



  • Guten Abend,
    seit nunmehr eineinhalb Jahren programmiere ich an Feierabenden an einem Tool, dass eine Mehrkörpersimulation - Feder, Dämpfer, Masse Verbindungen - in ein paar Klicks ermöglichen soll. Das Interface arbeitet bei der Darstellung mit einer Kombination aus OpenGL und dem Borland C++ Builder 4 unter Windows 2000. Die Algorithmen greifen auf eine Mathematik Bibliothek zu, die die Klassen Matrix und Solver zur Verfügung stellt. Mit einem universellen Lösungsalgolrithmus können inzwischen Systeme mit bis zu 300 Freiheitsgraden flüssig in Echtzeit simuliert werden.

    Bisher sind im Programm folgende Features eingebaut:
    Modellierung von Knoten, Massen, Federn, Dämpfer, Balken
    Schwarmalgorithmus
    Darstellung in OpenGL inklusive Picking
    Komplette Steuerung über GUI und/oder Eingabescripten (welches auch gleichzeitig die Speicherdatei ist)

    Features, die in nächster Zeit eingebaut werden:
    Koordinatensysteme
    impliziter Solver, Trapezregel, Runge Kutta höherer Ordnung
    Schrittweitensteuerung
    Scheiben, Flächen
    Laden und Darstellen von m3d,3ds,dxf,iges-Dateien (Softbody, u.a.)
    Rotationsfreiheitsgrade
    Randbedingungen (g, Auslenkungen, Stoß, Reibung)
    Klasse Plot
    Parser für Befehle zur Laufzeit

    Das Herzstück des Programms, die DLL, habe ich leider nur mit viel Trial and Error programmieren können. Da ich kein Informatiker bin, fehlen mir in C++ einige vertiefte Kenntnisse über Zeiger, Adressen und Speicherverwaltung. Von dem Codeschnipsel, der aus der DLL stammt, kann ich zum Beispiel nur die Hälfte erklären, obwohl sie irgendwann mal von mir programmiert wurde...:(

    //---------------------------------------------------------------------------
    XMatrix &XMatrix::operator = (XMatrix &mat){
    //---------------------------------------------------------------------------
       int r = mat.X_Row();
       int c = mat.X_Col();
       MatrixResize(r,c);
       for (register int i=0;i<r;i++)
          memcpy(m[i],(mat.MatrixReturn())[i],c*sizeof(float));
       return *this;
    }
    

    Und genau aus diesem Grund bräuchte ich etwas Hilfe.

    Vielleicht schaffe ich es in den nächsten Tagen ein paar Screenshots hochzuladen, damit man einen kleinen Eindruck von der Oberfläche erhält.

    Es wäre schön, wenn der-/diejenige, die Lust hat, sich an der Entwicklung zu beteiligen ein paar Grundkenntnisse in Numerik hätte und/oder im Umgang mit dem Bronstein, Engeln-Müllges oder dem Dubbel vertraut ist (oder schonmal davon gehört hat).

    In diesem Sinne
    TAlex

    p.s. Um dem Ganzen etwas den Wind aus den Segeln zu nehmen:
    fast alles was an Mathematik umgesetzt ist, stammt aus dem Bronstein
    fast alles was in OpenGL dargestellt wird, kann bei NeHe nachgeslesen werden
    fast alles was an GUI's benutzt wird, ist über die IDE des BCB erzeugt worden
    🙄


Anmelden zum Antworten