Rechnen mit Vektoren
Übersicht

![]() |
ComNikBetreff: Rechnen mit Vektoren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieder mal guten morgen ![]() Nachdem ich das tutorial von Noobody eingehend konsultiert, sowie ihn mit vielen fragen genervt hatte( ![]() begann ich meine eigene Physik Engine für BMax Spiele zu schreiben. Die ist inzwischen so gut wie fertig. Um mit so wenige Includes wie möglichen herumzumachen, entschied ich mich gestern die benötigte Mathematik(die ich keineswegs 100%tig verstehe) in einem modul zusammenzufassen. Mit freundlicher Erlaubnis Noobodys veröffentliche ich es hier nun, damit man sich das schreiben eigener funktionen in einer include sparen kann Wie gesagt: Die funktionen habe ich mir nicht alle rausgesucht, die meisten sind von Noobody! ![]() Die Funktionen in dem Modul arbeiten alle mit der TVector Klasse. Diese besteht aus den Fields x, y und z(nur für 3D etc...) sowie den mathematischen methoden. Möchte man nun (so wie ich in meiner engine) einen eigenen Type mit neuen Fields etc... nutzen lässt man im neuen Type die Fields x, y und optional z weg. Dann einfch den eigenen Type von der TVector Klasse erben lassen. - und schon hat man seine eigene Vektor klasse mit der man machen kann was man will. Beispiel: So sieht die TVector Klasse aus: Code: [AUSKLAPPEN] Type TVector Field x:Float Field y:Float Field z:Float 'Rechen funktionen etc... End Type Und so könnte eure eigene Klasse dann aussehen: Code: [AUSKLAPPEN] Type TVertex Extends TVector '<-- erben nich vergessen 'x, y und z weglassen! Field bli:Int Field bla:String Field blubb:Float End Type Download: *Klick! Funktionsübersicht: Vector(x, y, z) : Erstellt einen neuen Vektor und liefert ihn zurück. Methoden: vector.Add(vector:TVector) : Addiert den übergegebenen vektor zu Self. vector.Subtract(vector:TVector) : Subtrahiert den übergegebenen Vektor von Self. vector.Multiply(S:Float) : Multipliziert Self.x, Self.y und Self.z mit S vector.Invert() : Invertiert einen Vektor. (Self.x = 1/self.x, Self.y = 1/Self.y, Self.z = 1/Self.z) vector.Angle() : Liefert den Winkel des Vektors zurück. vector.Normalize() : Normalisiert einen Vektor. vector.Dotproduct(vector:TVector) : Liefert das Skalar Produkt von Self und vector zurück. vector.CrossProduct(vector:TVector) : Liefert das vektorprodukt von Self und vector zurück. vector.Copy() : Kopiert Self und liefert die Kopie zurück. Verbesserungsvorschläge Bugmeldungen etc... einfach posten! Solltet ihr das Bedürfniss haben: Lob is hier fehl am Platz, und wenn dann bitte an Noo! mfg ComNik |
||
WIP: Vorx.Engine |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group