Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Mind

Treue Seele

  • »Mind« ist der Autor dieses Themas
  • Private Nachricht senden

11

27.03.2004, 12:15

mal ne grundsätzliche Frage stimmt das so wenn ich zuerst um die z achse und dann um die x achse drehen will diese formeln?

Quellcode

1
2
3
4
5
a = x * cosf(TB_DEG_TO_RAD(angle)) - y * sinf(TB_DEG_TO_RAD(angle)); 
b = x * sinf(TB_DEG_TO_RAD(angle)) + y * cosf(TB_DEG_TO_RAD(angle));

c = b * sinf(TB_DEG_TO_RAD(amp)) + z * cosf(TB_DEG_TO_RAD(amp));
b = b * cosf(TB_DEG_TO_RAD(amp)) - z * sinf(TB_DEG_TO_RAD(amp));


nicht das ich den fehler wo anders suche.

Mind

Treue Seele

  • »Mind« ist der Autor dieses Themas
  • Private Nachricht senden

12

27.03.2004, 18:34

ok hab rausgefunden das das passt.

aber ich kommt einfach net weiter mit den winkeln.
warum spielt die reihenfolge der drehung eine rolle?
wenn ich weiss wie ichs gedreht habe dann mach ich davon das Skalarprodukt und weiß den winkel von der letzten drehung dann dreh ich mit dem winkel wieder zurück und mach wieder ein Skalarprodukt das funktioniert wunderbar aber wenn ichs anders rum mache nicht.

naja vielleicht gibts ja auch ein anderen Lösungsansatz.

ich will eigentlich nur eine Quader zeichnen. ich hab gegeben eine Linie.
also 2 Punkte. die 2 Punkte sollen die Mittelpunkte von der Ober und Unter fläche des Quaders sein. Wie breit der Quader sein soll weiß ich natürlich auch. Aber wie krieg ich hin das die Ober und Unterfläche 90 grad zur linie stehen. Daher auch mein Ansatz mit den Winkel aber das haut ja irgendwie net so hin wie ich das will. Muss dazu sagen das es nicht nur ein Quader sein soll sondern das die Ober und Unterfläche vielleicht 5 eckig oder 7 eckig sein soll.

wenn einer davon Ahnung hat aber meine schlechte Erklärung nicht verstanden hat ;D kann mich ja auch mal in Messager oder ICQ anquatschen. geb dann natürlich Nummer her.

wäre echt nett

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

13

27.03.2004, 19:01

Nimm Dir einfach irgendetwas (z.B. Kugelschreiber) her und dreh 90 Grad um y und dann um x.

Dann in Ausgangslage zurück und 90 Grad um x und dann um y. Und Du siehst, er ist anders positioniert.

Es ist halt nicht alles kommutativ. Ob Du erst die Autotür aufmachst und dann einsteigst oder erst versuchst einzusteigen und dann erst die Tür aufmachst, ist ein großer Unterschied :wirbel:

Mind

Treue Seele

  • »Mind« ist der Autor dieses Themas
  • Private Nachricht senden

14

27.03.2004, 19:11

schön aber ne antwort auf die andere frage wäre mir lieber gewesen ;-)
weil wie du siehst weiß ich net wie es gedreht wurde ich hab ja nur 2 punkte

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

15

27.03.2004, 19:17

Wie sieht es aus, wenn es mehr als 4 Eckpunkte sind?
Ist es immer ein "eckiger zylinder" oder bekommt es dann sozusagen Fussballform, d.h. nähert sich einer Kugel an?

Im ersten Fall gibts nämlich noch eine ganz andere Lösung.

Mind

Treue Seele

  • »Mind« ist der Autor dieses Themas
  • Private Nachricht senden

16

27.03.2004, 21:57

nein er ist eigentlich immer mehr länglich also ein eckiger zylinder
also sprich und werd mein freund ;D

Mind

Treue Seele

  • »Mind« ist der Autor dieses Themas
  • Private Nachricht senden

17

26.04.2004, 08:51

hi
hab mal wieder ein neues problemchen =)

wenn ich eine Linie hab z.B. von 0,0,0 nach 10,4,3. Diese Linie soll meine Achse sein und ich hab einen Punkt den ich um einen bestimmten Winkel um diesee Achse drehen will. Wie komme ich an den neuen Vektor des neuen Punktes?

Es gibt glaub da was von DirectX um was um eine andere Achse zu drehen wenn ich mich net täusche aber 1. ich brauche den Vektor des gedrehten Punktes und 2. ich will net so viel overhead mitnehmen die schlanke formel wäre schöner.

Aber wenn jemand weiß wie man das mit den Directx Kommandos geht und das man zum schluss auch wieder auf den Vektor kommt ists das besser als wenn ich gar nix hab =)

weiß jemand wie das geht?

18

26.04.2004, 09:15

vergiss des, mach lieber den umweg über die winkel,sonst musst du, nachdem du das koordinatensystem einmal neu ausgerichtet hast, jede bewegung nun auch wieder neu ausrichten.

machs anders:
du ziehst erstmal deine position von der des anderen punktes ab(sodass du zb die beiden punkte 0/0/0 10/4/3 hast, es ist wichtig dass einer der beiden punkte 0 ist.
dann kann man den erweiterten satz des pytagoras anwenden, also wurzel aus 10²+4²+3².
dann hast du die länge des Vectors.
jeden wert des punktes 10/4/3 musst du dann durch die länge teilen, was herauskommt ist ein normalisierter vektor.

so, mithilfe des normalisierten vectors ist es direkt möglich die winkel rauszubekommen,aber gib mir mal kurz zeit, dann kann ich da noch die formel raussuchen^^

aber um nochmal auf dein problem zurückzukommen:wenn du dann die winkel mit der von mir nachgelieferten formel hast, kannst du dein objekt in dem "normalen" koordinatensystem drehen, und dann die Winkel draufadieren,es müsste dasselbe rauskommen.

hier die winkelformel(ohne gewehr):
//edit falsch.

Mind

Treue Seele

  • »Mind« ist der Autor dieses Themas
  • Private Nachricht senden

19

26.04.2004, 09:18

also bewegung hab ich net das ist nur zum genierieren gedacht

20

26.04.2004, 09:34

moment ich hab deine wirklich "sehr gute" erklärung deines problems so verstanden:
du schaust auf ein objekt, dieser vector wird deine neue zachse.
nun willst du ein anderes objekt anhand des neuen koordinatensystems drehen.
das problem ist, dass du nicht einfach mal so zwischen den koordinatensystemen wechseln kannst, du kannst nich sagen, ich positionier das objekt mithilfe der neuen koordinatensystem ausrichtung und beweg mich dann so, wie vorher, wenn du die bewegungsvektoren nicht mit drehst, bewegst du dich plötzlich seitwärts, und das is das große problem bei der technik, und der grund, weshalb ich sie nie benutzen würde.

Werbeanzeige