z-Wert bei TransformSprite3D()
z-Wert bei TransformSprite3D()
Also,
ich hab ein Problem mit dem Befehl TransformSprite3D().
Grundsätzlich kapier ich das ja: man gibt da die xy-Koordinaten der 4 Eckpunkte an. Aber wozu sind die z-Koordinaten?
Ich habs leider durch Probieren nicht rausgefunden und die Themen, die ich mit der Forensuche gefunden habe haben mir auch nicht geholfen.
Deshalb: Wie geht das? Am besten mit Beispiel.
ich hab ein Problem mit dem Befehl TransformSprite3D().
Grundsätzlich kapier ich das ja: man gibt da die xy-Koordinaten der 4 Eckpunkte an. Aber wozu sind die z-Koordinaten?
Ich habs leider durch Probieren nicht rausgefunden und die Themen, die ich mit der Forensuche gefunden habe haben mir auch nicht geholfen.
Deshalb: Wie geht das? Am besten mit Beispiel.
- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: z-Wert bei TransformSprite3D()
z ist die Tiefe(also nach hinten). Es sieht deshalb aus wie das normale sprite, weil ja noch eine orthogonale anzeige ist.Batze hat geschrieben:Also,
ich hab ein Problem mit dem Befehl TransformSprite3D().
Grundsätzlich kapier ich das ja: man gibt da die xy-Koordinaten der 4 Eckpunkte an. Aber wozu sind die z-Koordinaten?
Ich habs leider durch Probieren nicht rausgefunden und die Themen, die ich mit der Forensuche gefunden habe haben mir auch nicht geholfen.
Deshalb: Wie geht das? Am besten mit Beispiel.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Es gibt aber ne Veränderung wenn ich die y-Werte ändere. Wenn die garkeine Auswirkungen haben, wie kommt das dann?
Edit: ein Beispiel das im PureBasic >> Examples Verzeichnis läuft
Also bei mir tut sich bei den Pfeiltasten was!
Edit: ein Beispiel das im PureBasic >> Examples Verzeichnis läuft
Code: Alles auswählen
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
End
EndIf
If InitSprite3D() = 0
MessageRequester("Error", "Direct3D system can't be initialized correctly", 0)
End
EndIf
If OpenScreen(640, 480, 16, "Sprite")
LoadSprite(0, "Data\Geebee2.bmp", #PB_Sprite_Texture)
CreateSprite3D(0, 0)
CreateSprite3D(1, 0)
CreateSprite3D(2, 0)
Sprite3DQuality(1)
TransparentSpriteColor(0, 255, 0, 255) ; Our pink is transparent :)
DefType.f H, V
Repeat
FlipBuffers()
ClearScreen(0,50,128)
If KeyboardPushed(#PB_Key_W) : Y - 1
ElseIf KeyboardPushed(#PB_Key_S) : Y + 1
ElseIf KeyboardPushed(#PB_Key_A) : x - 1
ElseIf KeyboardPushed(#PB_Key_D) : x + 1
EndIf
If KeyboardPushed(#PB_Key_Left ) : H - 0.01
ElseIf KeyboardPushed(#PB_Key_Right) : H + 0.01
ElseIf KeyboardPushed(#PB_Key_Up ) : V - 0.01
ElseIf KeyboardPushed(#PB_Key_Down ) : V + 0.01
EndIf
If Start3D() ; x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4
TransformSprite3D(0, 128,000, V, 128,128, V, 000,128, H, 000,000, H)
DisplaySprite3D(0, x, Y, 255)
Stop3D()
EndIf
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester("Error", "Can't open a 640*480 - 16 bit screen !", 0)
EndIf
End -
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Code: Alles auswählen
Verformt ("transform") das 3D-Sprite auf die neu angegebenen Koordinaten. Dies erfolgt typischerweise beim Durchführen von Echtzeit-Verformungen. Warnung: Da ein Sprite3D sich in 2 Richtungen ausdehnt (2 Dreiecke), kann die Verformung sehr seltsam aussehen...
Wenn einer der optionalen 'z'-Parameter verwendet wird, müssen alle angegeben werden.
;
; 1 2
; ---------
; | /|
; | / |
; | / |
; |/ |
; ---------
; 4 3
;
Zuletzt geändert von DarkDragon am 26.07.2005 17:08, insgesamt 1-mal geändert.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
hallöle
hatte mich auch schonmal damit beschäftigt
das kam dabei raus :
http://forums.purebasic.com/german/arch ... 46ecba9707
ist schon jahr her hoffe es läuft noch
mfg
hatte mich auch schonmal damit beschäftigt
das kam dabei raus :
http://forums.purebasic.com/german/arch ... 46ecba9707
ist schon jahr her hoffe es läuft noch
mfg
Danke,
ich setz mich jetzt erstmal 2 Stunden vor den Code und versuch ihn zu verstehen.
Edit: 2 Stunden werden reichen
ich setz mich jetzt erstmal 2 Stunden vor den Code und versuch ihn zu verstehen.
Edit: 2 Stunden werden reichen
Zuletzt geändert von Batze am 04.07.2005 15:14, insgesamt 1-mal geändert.