BlitzMax Standard Library
Übersicht 

![]() |
Skabus |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
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 |
![]() |
ProfJakeehemals "DTC" / "Fabian Niemann" |
![]() |
---|---|---|
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 ![]() 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 |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
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 |
![]() |
ProfJakeehemals "DTC" / "Fabian Niemann" |
![]() |
---|---|---|
@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 |
![]() |
---|---|---|
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 |
![]() |
ProfJakeehemals "DTC" / "Fabian Niemann" |
![]() |
---|---|---|
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? ![]() |
![]() |
hazumu-kunBetreff: Intervalle |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
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. |
![]() |
XeresModerator |
![]() |
---|---|---|
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
mpmxyz |
![]() |
---|---|---|
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. ![]() 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. ![]() 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 |
![]() |
ProfJakeehemals "DTC" / "Fabian Niemann" |
![]() |
---|---|---|
@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? ![]() 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 |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
Fürs SVN sind Deine Sourcefiles nicht geeignet, Du solltest sie als UTF-8 oder zumindest ASCII sichern. | ||
Farbfinsternis.tv |
![]() |
ProfJakeehemals "DTC" / "Fabian Niemann" |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
Im SVN kannst Du nichts umstellen, verwende am besten BLIde als IDE, die sichert als ASCII | ||
Farbfinsternis.tv |
![]() |
ProfJakeehemals "DTC" / "Fabian Niemann" |
![]() |
---|---|---|
"Made on a Mac."
Aber als was speichert denn die MaxIDE? Ist doch auch Plain Text - und dann weder UTF-8 noch ASCII?? |
Übersicht

