2x2 Matrizen
Übersicht

![]() |
Devils ChildBetreff: 2x2 Matrizen |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi!
auf blitzbase.de ist ja eine codesammlung, und da ist auch eine 3dlib, und da sind funktionen für 4x4er matritzen wie matrixrotate matrixtranslate vectormultiplymatrix etc. gibt es sowas auch für 2x2er matritzen? ich hab bei google nix gefunden und wäre sehr dankbar über irgendetwas... ![]() |
||
*X-Ware Member*
Mission to Hell[Ego-Shooter] Hier Vollversion runterladen: http://patrick-sch.de/spiele/m...ersion.zip ich antworte auf jede PN |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist die frage allgemein? Ja man kann mit 2x2 Matrix rechnen. Eine 3D-Lib mit 2x2 Matrix macht jedoch keinen Sinn...
Um besser eine Matrix zu verstehen - soll man sich die Matrix als eine Tabelle vorstellen, wo eben alle 4 Grundrechenarten + - * / in einer Tabelle notiert sind... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was sollen dir eigentlich 2x2 Matrizen bringen? Du kannst damit nur in 2D Skalation und Rotation durchführen, jedoch keine Translation. Dafür brauchst du ja 3x3 Matrizen.
mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
Devils Child |
![]() Antworten mit Zitat ![]() |
---|---|---|
och ich hab in nem raycaster-tut was davon gelesen dass man für sprites 2x2 er matrizen braucht, wie sprites gerendert werden(beim raycasting) ist mir klar, und desshalb bruach ich 2x2er matrizen für rotation only, habt ihr da einen verweiss auf ne seite oder gar code? code wär mir am liebsten ![]() ... |
||
*X-Ware Member*
Mission to Hell[Ego-Shooter] Hier Vollversion runterladen: http://patrick-sch.de/spiele/m...ersion.zip ich antworte auf jede PN |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ach so...
http://www.blitzbase.de/lexikon/matrix.htm |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Devils Child |
![]() Antworten mit Zitat ![]() |
---|---|---|
du bist ein schatz!
danke! ![]() |
||
*X-Ware Member*
Mission to Hell[Ego-Shooter] Hier Vollversion runterladen: http://patrick-sch.de/spiele/m...ersion.zip ich antworte auf jede PN |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
du kannst alles mit matrizen multiplizieren...
vektor -> ein start+endpunkt einer "linie" rechnest du um, indem du die jeweiligen endkoordinaten mit der matrix einzeln umrechnest... wenn du aber eher punkt meinst, dann musst du das nur 1x machen... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Devils Child |
![]() Antworten mit Zitat ![]() |
---|---|---|
ehm, ich versteh net ganz was du meinst, hier ist mein code:
BlitzBasic: [AUSKLAPPEN] Type Matrix ist das richtig? wie kann ich ne funtion vectorMULTIPLYmatrix aussehen lassen?? |
||
*X-Ware Member*
Mission to Hell[Ego-Shooter] Hier Vollversion runterladen: http://patrick-sch.de/spiele/m...ersion.zip ich antworte auf jede PN |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einfach mal ausprobieren:
Code: [AUSKLAPPEN] Type TMatrix
Field aa#, ab#, ac# Field ba#, bb#, bc# Field ca#, cb#, cc# End Type Type TPoint Field X#, Y# End Type Function CreateMatrix.TMatrix() m.TMatrix = New TMatrix MatrixIdentity(m) Return m End Function Function MatrixIdentity(m.TMatrix) m\aa# = 1: m\ab# = 0: m\ac# = 0 m\ba# = 0: m\bb# = 1: m\bc# = 0 m\ca# = 0: m\cb# = 0: m\cc# = 1 End Function Function MatrixRotate(m.TMatrix, a#) m\aa# = Cos(a#): m\ab# = Sin(a#): m\ac# = 0 m\ba# = -Sin(a#): m\bb# = Cos(a#): m\bc# = 0 m\ca# = 0: m\cb# = 0: m\cc# = 1 End Function Function MatrixTranslate(m.TMatrix, x#, y#) m\aa# = 1: m\ab# = 0: m\ac# = 0 m\ba# = 0: m\bb# = 1: m\bc# = 0 m\ca# = x#: m\cb# = y#: m\cc# = 1 End Function Function PointMultMatrix(p.TPoint, m.TMatrix, r.TPoint) r\X# = p\X#*m\aa# + p\Y#*m\ba# + m\ca# r\Y# = p\X#*m\ab# + p\Y#*m\bb# + m\cb# End Function Global Rotate.TMatrix, Translate.TMatrix Global Point1.TPoint, Point2.TPoint Global Angle#, X#, Y# Global Temp1.TPoint, Temp2.TPoint Graphics(640, 480, 0, 2) SetBuffer(BackBuffer()) Rotate = New TMatrix Translate = New TMatrix Point1 = New TPoint Point1\X# = -25.0 : Point1\Y# = 0.0 Point2 = New TPoint Point2\X# = +25.0 : Point2\Y# = 0.0 X# = 320.0 : Y# = 240.0 Temp1 = New TPoint : Temp2 = New TPoint While Not KeyDown(1) Cls() If KeyDown(30) Then Angle# = Angle#-1.0 If KeyDown(44) Then Angle# = Angle#+1.0 If KeyDown(200) Then Y# = Y#-1.0 If KeyDown(208) Then Y# = Y#+1.0 If KeyDown(203) Then X# = X#-1.0 If KeyDown(205) Then X# = X#+1.0 MatrixRotate(Rotate, Angle#) MatrixTranslate(Translate, X#, Y#) PointMultMatrix(Point1, Rotate, Temp1) PointMultMatrix(Temp1, Translate, Temp1) PointMultMatrix(Point2, Rotate, Temp2) PointMultMatrix(Temp2, Translate, Temp2) Line(Temp1\X#, Temp1\Y#, Temp2\X#, Temp2\Y#) Flip() Wend End Ich habe es mir jetzt einfach mal erspart ne MatrixMultiplyMatrix Funktion zu schreiben und einfach mit die 2 Punkte erst rotiert und dann noch Translaiert. Zu Translaieren über Pfeiltasten und Rotieren über A und Y. mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
Devils Child |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool, danke olli, ich werds gleich ausprobieren! kann man damit auch raycaster-prites projizieren, naja wir werden mal sehen ![]() tschüssi ![]() edit: das sprite wird ganz komisch projiziert! BlitzBasic: [AUSKLAPPEN] Function Spritecast() solange man die cam net dreht werden alle sprites korrekt projiziert, dreht man sie aber, dann rasten die sprites aus ![]() |
||
*X-Ware Member*
Mission to Hell[Ego-Shooter] Hier Vollversion runterladen: http://patrick-sch.de/spiele/m...ersion.zip ich antworte auf jede PN |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
sowas würde ich nicht mit types machen, weil diese langsamer sind... alles nur in arrays... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Devils Child |
![]() Antworten mit Zitat ![]() |
---|---|---|
naja, vielleicht nachner, immerhin ist "Sprite" die einzige typen-liste, aber was mach ich nun falsch? wenn die cam net gedreht ist funtzt alles prächtig und wenn doch ist das sprite verrückt ![]() ![]() |
||
*X-Ware Member*
Mission to Hell[Ego-Shooter] Hier Vollversion runterladen: http://patrick-sch.de/spiele/m...ersion.zip ich antworte auf jede PN |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group