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

1

23.03.2004, 16:29

Mathe

Hi,

sorry ich hatte sowas nie in Mathe und als ich Mathe in der Schule hatte sind schon einige Jahre her.

also meine Frage

geht das und wenn das geht wie? =)

ich habe 2 Vektoren der eine ist A(0,0,0) der andere was weiß ich B(5,8,2) und einen 3 Punkt der genau senkrecht über A steht und genau so lang ist wie die Länge von A nach B

Wie krieg ich jetzt die Winkel für die Drehung um die x-Achse, y-Achse und z-Achse raus wenn der Drehpunkt bei dem 1. Vektor ist.

Anonymous

unregistriert

2

24.03.2004, 18:02

hhmmmm, das thema hatten wir schon mal.......
also mir fällt da so ganz spontan der cosinus satz ein.
Ich würde das ganze in 2 2D-aufgaben aufteilen. Ergo:
um z.b. den Winkel der Drehung um die z-Achse zu bekommen müsstest du die Länge des 2.Vektor in Bezug auf die x und die y Achse rausfinden
(laut pyt c=wurzel aus a²+b²) . dann rechnet man den x Wert des 2.Vektor durch die Länge c. Den wert den man dann bekommt muss man nur noch in Grad umwandeln.
(ich hoffe ich habe keinen Fehler gemacht :angel: )
Also wenn es stimmt kannst du so auch die anderen Winkel rausfinden.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

3

24.03.2004, 20:24

es gibt das sogenannte Skalarprodukt, vielleicht hilft dir das, musste mal googlen, gibts bestimmt. Aber eines verstehe ich nicht... dein Vektor A ist ein Nullvektor???? Bist du dir sicher, das A kein Punkt ist?

Mind

Treue Seele

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

4

24.03.2004, 22:41

mit skalarprodukt hats irgendwie net gefunkt.

ja das mit 0,0,0 is richtig ist zur einfachkeit.

ich erklärs nochmals anders ich hab im Prinzip eine Linie von Punkt A nach C diese Linie wurde einmal gedreht um die x - Achse und z-Achse ich weiss die Orgniallinie von AB war sekrecht nach oben. mal ein Beispiel

a (0,0,0) ist zur Einfachkeit
b(5,0,0)
und c (0,5,0)
so ist ja einfach da weiss ich die Linie wurde um 90 Grad um die z-Achse gedreht und 0 Grad um die x-Achse

Ich weiss also immer den Ursprungs Punkt der Linie und der rotierten Punkt der Linie jetzt will ich eben die Winkel wissen, wenn B zum Beispiel (3,3,3) ist. C würde ich mir da so ausrechnen und zwar erstmal die Länge von B ausrechnen und dann einfach diesen Wert in die y Koordinate setzten C wäre dann eben (0, länge von AB,0) so und wie kriege ich jetzt die Winkel raus?

immer noch zu kompliziert erklärt?

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

5

24.03.2004, 23:37

Las uns den Ursprungsvektor x0, y0, z0 nennen, den nach der 1. Drehugn x1, y1, z1, den nach der 2. x2, y2, z2. Der erste Winkel sei a, der zweite b. Du hast nicht gesagt, was "oben" ist, ich geh mal von y aus.

Also:
x0 = z0 = 0

1. Drehung, um x-Achse:

x1 = 0
y1 = y0 cos a
z1 = y0 sin a

2. Drehung, um z-Achse:

x2 = y1 sin b = y0 cos a sin b
y2 = y0 cos a cos b
z2 = z1 = y0 sin a

Also, laut letzter Gleichung:
a kann arc sin z2/y0 sein. Es kann auch so etwas wie pi - arc sin z2/y0 sein.
Dies in die Gleichuing für y2 einsetzen und nach b auflösen.

Mind

Treue Seele

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

6

25.03.2004, 10:12

hm irgendwie kommen da net die richtigen Zahlen raus

zuerst dreh ich um die z Achse mit dem Winkel angle danach um die x Achse mit dem winkel angle2

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
float x = 0.0f; float y = 7.0f; float z = 0.0f;
float x2 = 0.0f;float y2 = 0.0f;float z2 = 0.0f;

float angle = 50.0f / 57.29f;
float angle2 = 60.0f / 57.29f;


x2 = x * cosf(angle) - y * sinf(angle);
y2 = x * sinf(angle) + y * cosf(angle);

    
z2 = y2 * sinf(angle2) + z * cosf(angle2);
y2 = y2 * cosf(angle2) - z * sinf(angle2);



so und jetzt will ich diese Winkel wieder herausbekommen
und nutze die Formeln von dir

Quellcode

1
2
3
4
5
float angle1 = asinf(z2/y); 
float angle2 = acosf(y2 / (y * cosf(angle1)));

float w1 = angle1 * 57.29f;
float w2 = angle2 * 57.29f;


aber ergebnis stimmt nicht

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

7

25.03.2004, 10:27

[/QUOTE]
zuerst dreh ich um die z Achse mit dem Winkel angle danach um die x Achse mit dem winkel angle2

Zitat



Ich dachte, Du drehst zuerst um x und dann um z? Die Reihenfolge ist hier sehr wichtig.

Übrigens hattest Du auch nicht gesagt, wie rum Du drehst bzw. ob Du ein Rechts- oder Linkssystem hast. Dies wirkt sich in Vorzeichen aus. Indem Du Deine mit meinen Formeln vergleichst, siehst Du, welches Vorzeichen Du brauchst.

Mind

Treue Seele

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

8

25.03.2004, 10:48

ach shit dachte mir schon sowas weiß nämlich nicht was zu erst gedreht wurde.

also das heißt wenn ich nur den Orginalpunkt hab und den gedehten und mehr wissen hab ich nicht, komme ich nicht auf die Winkel?

Danke erstmal für deine Hilfe

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

9

25.03.2004, 11:01

Wozu brauchst Du das? Wenn Du es z.B. brauchst, um das Objekt wieder zurückzudrehen, vielleicht kannst *DU* dann die Reihenfolge des Zurückdrehens bestimmen. Mit anderen Worten, vielleicht schadet es nichts wenn der Rückweg anders ist als der Hinweg?

Da wir aber nicht wissen, worum es geht, können wir nur raten.

Mind

Treue Seele

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

10

25.03.2004, 11:24

naja wo ich dachte das ich das brauche brauch ichs warscheinlich doch nicht mehr aber ich wollte es eben mal wissen wie das geht falls ich sowas doch mal brauche.

die frage ist überhaupt geht das wenn ich nur 2 linen kenne eine AB und AC. Beide Lienen sind gleichlang.
Drehpunkt war A und AC steht senkrecht nach oben also y.
Kriegt man dann diese Winkel raus oder geht das gar nicht?

Werbeanzeige