3d rotation ???

  • 3d rotation ???

    ich versuche schon seit einigen stunden ein cylinder zu drehen.
    ich habe alle aus dem forum versucht und nix funktioniert :headtouch:


    GML-Quellcode

    1. d3d_draw_cylinder(self.x-50,self.y-50,z+100,self.x+50,self.y+50,z+150,background_get_texture(texture_walze),1,1,false,80);


    das verdammt teil soll aufrecht stehen. :motz:
    ich habe d3d_transform_set_rotation versucht und transform_set_rotation_axis und transform_add_translation und irgendwie alles was ich zu diesem thema gefunden hab. gelegentlich habe ich es auch geschaft das das ding ansatzweise aufrecht stand dann war es aber zu hälfte aus dem bildschirm raus. kann mir jemand sagen wie ich das aufrecht bekomme ???

    edit: es soll mal die walze einer slotmaschine werden

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Jack Projekt ()

  • mit deinem code kannst du nur die form erzeugen. diese ist immer an der "welt" (also dem raum und seiner x und y achse) ausgerichtet.
    um den körper zu drehen, musst du eine rotation einfügen. solle sich der mittelpunkt des objekts dabei nicht auf dem nullpunkt befinden, musst du zusätzlich eine "translation" (eine übersetzung de punkte im 3dimensionelen raum) durchführen, da rotationen immer zur welt ausgerichtet erfolgen.

    GML-Quellcode

    1. // GML Code created with Smart Poly - Version: 1.30
    2. // © 2005 by VectorGames.de - All rights reserved!
    3. // primitive1
    4. d3d_transform_add_translation(-0,-0,-20); // übersetzung zum nullpunkt
    5. d3d_transform_add_rotation_z(140); // hier den winkel der rotation in der z achse
    6. d3d_transform_add_translation(0,0,20); // übersetzung zurück zum ausgangspunkt
    7. d3d_draw_cylinder(-50,-50,0,50,50,40,background_get_texture(texture_walze),6,1,0,16);


    p.s.: die smilies kommen mir bekannt vor :D
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • ich bin einfach zu blöd das zu verstehen. solchen code hatte ich schon versucht aber irgendwie komme ich zu keinem brauchbaren ergebnis. es ist egal welche werte ich änder der cylinder bleibt verschwunden.

    würde mich freuen wenn mir jemand den zylinder aufrecht stellt. datei ist im anhang.

    bandit.zip



    ps: hm jetzt weiss ich auch wieder wo ich die smilies her habe :D
  • ich bin ein genie :thumbsup:

    jetzt hab ich das geschnallt
    habe die nullen einfach mit x und y ausgetauscht und nun läufts

    GML-Quellcode

    1. d3d_transform_add_translation(-x,-y,-20); // übersetzung zum nullpunkt
    2. d3d_transform_add_rotation_z(140); // hier den winkel der rotation in der z achse
    3. d3d_transform_add_translation(x,y,20); // übersetzung zurück zum ausgangspunkt


    :gmlove:
  • Benutzer online 1

    1 Besucher