BlitzMax Standard Library

Übersicht Kommentare Worklogs

Gehe zu Seite 1, 2  Weiter


Skabus

Link zu diesem BeitragMi, Mai 19, 2010 14:39
Das ist ne gute Idee...sowas wie die STD bei C++ hab ich bei BMax immer vermisst^^

Ich werds sicher verwenden wenns fertig wird, also viel Erfolg^^

MfG Ska
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

Noobody

Link zu diesem BeitragMi, Mai 19, 2010 14:45
Sowas hatte ich mir auch schon überlegt und finde ich auch sehr sinnvoll. Wichtige Klassen wie Sets, Priority Queues, Heaps etc. vermisste ich in BMax schon ein paar Mal.

Dank Object und der Compare-Methode sollte das ja auch in BMax ohne Templates gehen. Ausserdem kann man sich die hässlichen STL-Iteratoren dank Collections (EachIn) sparen.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

ComNik

Link zu diesem BeitragMi, Mai 19, 2010 15:18
Gute Idee auf jeden Fall.

Ich weiss nicht, also wenn alle was beitragen können:
Wie sicherst du die Qualität?

Also ich könnte jetzt gern mein neues Vektor Modul oder auch ein paar andere schicken.
Aber wie kann mann jetzt gucken ob da alles wichtige drinn ist, ob keine Bugs drinn sind?

Ansonsten viel Glück (:
lg
ComNik
WIP: Vorx.Engine

ProfJake

ehemals "DTC" / "Fabian Niemann"

Link zu diesem BeitragMi, Mai 19, 2010 15:50
Schön das zu hören.

@ComNik:
1. Vektormodul kannste mir gerne schicken, gibt's zwar schon, aber wenn noch was Interessantes drin ist, nehm ich#s gerne Smile
2. Einfach immer mal wieder bei Google Code vorbeischauen.

@Noobody: Zur Zeit gibt's (bei mir lokal) TICollection Interface von dem dann das TIList Interface und später auch sets abgeleitet werden.

mpmxyz

Link zu diesem BeitragMi, Jun 02, 2010 18:04
Ich finde die Idee für diese Modulreihe interessant.
Ich wäre dafür, mit diesen Dingen mathematisch weiter zu machen:
-Matrizen (als nützliche Ergänzung zu den Vektoren)
-komplexe Zahlen (Damit lassen sich Transformationen in der Ebene sehr elegant beschreiben. "an*x^n+a(n-1)*x^(n-1) ... +a0=0" hat immer n komplexe Lösungen.)
Für entsprechende mathematische Fragen stehe ich gerne zur Verfügung.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Farbfinsternis

Link zu diesem BeitragMi, Jun 02, 2010 18:10
Janz wichtich: Man muss Vektoren, Quaternions usw. auch an DLLs übergeben und von DLLs übernehmen können. Habe da ewig mit gekämpft aber es dann letztendlich hinbekommen (die BlitzMax Doku ist für die Sohle) und mir die Methoden "fromC()" und "toC()" gebastelt.
Farbfinsternis.tv

Skabus

Link zu diesem BeitragMi, Jun 02, 2010 18:36
Farbfinsternis: Du könntest dazu ja mal ein Tut rausbringen oder den Quelltext abgespeckt irgendwo hochladen und zeigen.
Würde ich nämlich gerne von lernen^^

Wüsste nämlich nicht wie ich sowas machen sollte...
"In einer so verrückten Welt, kann man um in ihr zu überleben nur eines tun, nämlich eben jenes werden: Ein Verrückter!" -Selbstzitat

aktuelles Projekt: Aves Certim - Der Galgen ist nicht weit!
Ein SNES-RPG mit Handels- und Wirtschaftselemente.
Infos?Hier: http://www.blitzforum.de/worklogs/234/
Besucht meine Seite:
www.seelenfriedhof.de.vu

ProfJake

ehemals "DTC" / "Fabian Niemann"

Link zu diesem BeitragMi, Jun 02, 2010 21:14
@mpmxyz: Also Matrix sowie Quaternion Modul sind selbstverständlich schon in Arbeit.

@Farbfinsternis: Ich schließ mich da Skabus an. Ich verstehe nämlich nicht so ganz was du meinst.

Farbfinsternis

Link zu diesem BeitragDo, Jun 03, 2010 09:00
Janz einfach:

C:
Code: [AUSKLAPPEN]

struct TVector3
{
   float x;
   float y;
   float z;
};

void Vec3FromBMax(TVector3* vec)
{
   std::cout << vec->x << vec->y << vec->z << std::endl;
}

TVector3* Vec3ToBMax(float x, float y, float z)
{
   TVector3* vec;
   vec->x = x;
   vec->y = y;
   vec->z = z;
   
   return vec;
}


BlitzMax:
Code: [AUSKLAPPEN]

Type TVector3
   Field x:Float
   Field y:Float
   Field z:Float
   
   Method toC:Byte Ptr()
      return VarPtr(Self.x)
   End Method
   
   Function fromC:TVector3(vec:Byte Ptr)
      Local v3:TVector3 = New TVector3
      
      v3.x = Float Ptr(vec)[0]
      v3.y = Float Ptr(vec)[1]
      v3.z = Float Ptr(vec)[2]
      
      Return v3
   End Function
End Type

Farbfinsternis.tv

ProfJake

ehemals "DTC" / "Fabian Niemann"

Link zu diesem BeitragFr, Jun 04, 2010 02:31
Dann müsste ich ja eigentlich alles nochmal in C nachprogrammieren und wenn ich schon mal dabei bin, auch in C++..

BTW was sagt denn der GC dazu, dass da hinter seinem Rücken mit Zeigern rumgespielt wird? Smile

hazumu-kun

Betreff: Intervalle

Link zu diesem BeitragMo, Jun 07, 2010 15:23
Nenn es doch einfach upLimit loLimit (upper/lower Limit)
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

maximilian

Link zu diesem BeitragMo, Jun 07, 2010 15:27
Also bei den Ranges wirds mir dann doch zu komisch...

If x >= range_begin And x <= range_end Then ...


Und dafür machst du ne Klasse? Das ist völlig übertrieben.
Variety is the spice of life. One day ignore people, next day annoy them.

Xeres

Moderator

Link zu diesem BeitragMo, Jun 07, 2010 18:17
Definitiv min/max. Ein Maximum ist immer ein Maximum, ob ein Start-oder Endwert größer oder kleiner ist, hängt stehts von der betrachteten Richtung ab.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

mpmxyz

Link zu diesem BeitragMo, Jun 07, 2010 20:20
Zwei Dinge:
1. Ich bin für "Minimum"/"Maximum".
2. Ich bin dabei, ein Modul für komplexe Zahlen zu schreiben. (mit Komponenten- und Zahlenebenen-Darstellung, bis jetzt ca. 60 deklarierte Funktionen und Methoden)
Ich möchte diese Arbeit insofern nicht umsonst machen, dass sie jemand anderes gleichzeitig auch macht. Wink
Die Nutzungsweise der Zahlen ist fast 1 zu 1 von deinem Vektormodul "abgekupfert" worden.
Das heißt, dass dieses Modul gerne in diese Modulserie integriert werden kann. (Da würde ich mich drüber freuen. Smile)
Es braucht aber noch etwas Zeit; 60 Funktionen und Methoden wollen gefüllt, dokumentiert und getestet werden.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

ProfJake

ehemals "DTC" / "Fabian Niemann"

Link zu diesem BeitragMo, Jun 07, 2010 21:14
@LordChaos:
Die Idee dahinter ist folgende: Ich bin der Ansicht, dass Funktionalität und Daten, die zusammen gehören, auch zusammen in eine Klasse (Type) sollten. Stell dir vor, du willst testen ob eine Zahl im Interval liegt, okay das geht noch mit einer kombinierten If Abfrage, aber denk mal weiter. Was passiert, wenn du testen willst, ob ein Interval in einem anderen Interval liegt o.ä, dann nimmst du wahrscheinlich (hoffentlich) Funktionen, damit der Code verständlich bleibt. Und dann wäre ja das ganze OOP Konzept für'n Arsch.
Soviel Funktionalität auslagern wie möglich und praktikabel, könnte das Motto von der BMSL (BlitzMax Standard Library) sein.

@Xeres:
Word.

@mpmxyz:
Also vorneweg: Ich arbeite nicht an einem "komplexe Zahlen" Module - es sagt glaube ich alles, dass ich bei Wikipedia nachgucken musste, oder? Smile
Ich fühle mich geehrt, dass mein Code für dich so gut ist. Doch ich würde es erstmal nicht reinbringen, irgendwie finde ich das zu mathematisch, nicht so wirklich "Standard". .. Ach verdammt, sehe gerade, dass die STL komplexe Zahlen supported. Wofür braucht/nutzt man das?

mpmxyz

Link zu diesem BeitragMo, Jun 07, 2010 22:04
Komplexe Zahlen kann man als den kleinen Bruder der Quaternionen für bezeichnen. (Eigentlich sind die Quaternionen "nur" eine Erweiterung der komplexen Zahlen.)
Sie bestehen im Vergleich zu Quaternionen zwar auch aus einem rellen Anteil, aber nur einem imaginären Anteil. (i=Sqr(-1), i ist die Einheit des imaginären Anteils)
Mit komplexen Zahlen kann man folgendes anstellen:
Man kann direkt die Nullstellen von einer Funktion 3-ten oder 4-ten Grades finden.
Jede Funktion n-ten Grades hat garantiert n komplexe Nullstellen.
Es gibt noch einige Anwendungen in der Wissenschaft, aber eine Sache könnte auch noch für Spiele-Programmierer interessant sein:
Mit den komplexen Zahlen kann man den zweidimensionalen Raum elegant beschreiben. (Der reelle Anteil wäre die x-Achse und der imaginäre Anteil entspräche der y-Achse.)
Bewegungen entsprechen bei diesen Zahlen wie bei den Vektoren Additionen.
Rotationen und Streckungen entprechen einer Multiplikation.
Rotationen und Streckungen lassen sich auch aneinanderhängen. (mehrfach multiplizieren)
Drehungen, die von einer Variable abhängen, können über die Exponential-Funktion ausgedrückt werden. (Position=e^(i*t))
Durch diese Eigenschaften finde zumindest ich diese Zahlen interessant.
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Farbfinsternis

Link zu diesem BeitragMi, Jun 09, 2010 15:32
Fürs SVN sind Deine Sourcefiles nicht geeignet, Du solltest sie als UTF-8 oder zumindest ASCII sichern.
Farbfinsternis.tv

ProfJake

ehemals "DTC" / "Fabian Niemann"

Link zu diesem BeitragMi, Jun 09, 2010 15:52
Danke für den Hinweis Farbfinsternis, aber was meinst du damit genau?
Dass ich alle Dateien in was anderem als der MaxIDE als UTF-8 speichern soll, oder dass ich bei SVN irgendwas umstellen soll. So dass er .bmx als Plain text versteht?

Farbfinsternis

Link zu diesem BeitragMi, Jun 09, 2010 16:59
Im SVN kannst Du nichts umstellen, verwende am besten BLIde als IDE, die sichert als ASCII
Farbfinsternis.tv

ProfJake

ehemals "DTC" / "Fabian Niemann"

Link zu diesem BeitragMi, Jun 09, 2010 22:55
"Made on a Mac."
Aber als was speichert denn die MaxIDE? Ist doch auch Plain Text - und dann weder UTF-8 noch ASCII??

Gehe zu Seite 1, 2  Weiter


Übersicht Kommentare Worklogs