Trigonometrie - So lernen wir's!
Übersicht

konstantinBetreff: Trigonometrie - So lernen wir's! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Trigonometrie ist ein wichtiger Bestandteil der Spieleprogrammierung und außerdem fundamentales Wissen der Mathematik.
Viele tolle Sachen, wie zum Beispiel eine "GTA1/2 like Steuerung" funktionieren über Trigonometrie (spezieller: Sinus und Cosinus). Einige (oder auch viele...) von euch sind in der Schule noch nicht so weit, als dass sie Trigonometrie ernsthaft im Unterricht bearbeitet haben, und deshalb gibt es immer wieder Missverstaendnisse in Sachen Cosinus, Sinus, Tangens, Cotangens & friends. Die Trigonometrie beschaeftigt sich hauptsaechlich mit Verhaeltnissen in rechtwinkligen Dreiecken. Um das fuer die Mathe-Noobs unter euch verstaendlich zu machen: Wenn wir ein rechtwinkliges Dreieck mit den Seiten a, b und c haben, so koennen wir 6 Verhaeltnisse zwischen diesen Seiten bilden (was nichts anderes heisst, als sie zu teilen). Bei a, b und c waeren das also: a/b, a/c, b/a, b/c, c/a, c/b (schwupps, hier ein beispielbild, dass ich bei google fand) ![]() ihr seht, auch dieses dreieck hat die seiten a, b und c. nun haben die seiten bestimmte pseudonyme, je nach dem wie sie im dreieck angeordnet sind. folgende gibt es: Die Hypotenuse ist die laengste Seite eines rechtwinkligen Dreieck und liegt deshalb auch immer gegenueber dem rechten Winkel. Auf unserem Bild ist daher c die Hypotenuse. Die Katheten sind die Seiten, die nicht Hypotenuse sind, und somit auch den rechten Winkel bilden. In unserem Fall sind a und b die katheten. Nun gibt es noch Ankatheten und Gegenkatheten. Je nachdem, auf welchen Winkel man sich bezieht, sind es auch unterschiedliche Seiten. Wenn wir den Winkel an Punkt A den namen Alpha geben, so ist die Kathete, die von A zum rechten Winkel fuehrt, die Ankathete (sie liegt an der Hypotenuse und an Alpha gleichzeitig). Die Gegenkathete von Alpha ist dann die andere Kathete, sie liegt an der Hypotenuse, aber nicht am Winkel Alpha. Ich habe vorhin schon was von Verhaeltnissen gebrabbelt. Diese Verhaeltnisse haben Namen. Die waeren: Sinus von Winkel Alpha ist das Verhaeltnis von der Gegenkathete von Alpha zur Hypotenuse. Cosinus von Winkel Alpha ist das Verhaeltnis von der Ankathete von Alpha zur Hypotenuse. Tangens von Winkel Alpha ist das Verhaeltnis von der Gegenkathete von Alpha zur Ankathete von Alpha. Cotangens von Winkel Alpha ist das Verhaeltnis von der Ankathete von Alpha zur Gegenkathete von Alpha. (die reihenfolge ist wichtig! denn x/y != y/x) Mit diesen Verhaeltnissen ist es moeglich, Dreiecke zu konstruieren, wenn man nur eine Seite und einen spitzen Winkel kennt. Okok, viel geschwafelt, wofür brauchen wir das nun z.b. bei einer GTA Steuerung? Dafür gibt es Sinus und Cosinus am Einheitskreis. Wie das aussieht, sehr ihr hier. ![]() (ok, ich bin muede und bringe das schnell zu ende...) wenn nun bei 0/0 unser spieler staende (in dem bild), und er mit dem Winkel Alpha irgendwo hin schaut, und er laufen will, dann muss folgendes passieren: BlitzBasic: x = x - Cos(Alpha) hier noch schnell ein paar quellen, denn nach dem kurzen eindruck wollt ihr sicher noch mehr wissen ![]()
* 3 Kapitel über Trigonometrie. Sehr verständlich. * Raycasting Tutorial (englisch). Ein interessanter Anwendungsbereich, der auch mich sehr interessiert. |
||
- Zuletzt bearbeitet von konstantin am Di, Jul 05, 2005 8:18, insgesamt einmal bearbeitet
![]() |
Mo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr cool... gefällt mir
Im nächsten Tut gehts dann den über Katheten-Höhensatz... und den Peripheriewinkelsatz natürlich ![]() ...im ernst gut verständlich ![]() Mo |
||
500 Euro Studiengebühren... ich glaub ich zieh in den Wald!!!
Eine Floßfahrt die ist lustig... *sing* ![]() |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bilde mir ein, es hier auch schonmal gut erklärt zu haben:
http://www.silizium-net.de/trigonometrie.htm |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/viewtopic.php?t=7493
Übrigens solltes du folgendes nochmal überdenken: Alu hat Folgendes geschrieben: Ist einfach nur falsch und wiederspricht deiner Skizze. Grundsätzlich: COS -> X SIN -> Y MfG D2006 |
||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
D2006: 'tschuldigung. habs gerade auch gemerkt. war gestern etwas muede. | ||
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
...und das Ganze nochmal an einem praktischen BlitzMax Beispiel erläutert:
Code: Strict Graphics 800,600,0,0 SetBlend ALPHABLEND Type TPlayer Field x:Float Field y:Float Field a:Float Field s:Float Field image:TImage Field shadow:TImage End Type Global player:TPlayer = New TPlayer player.x = 500.0 player.y = 400.0 player.a = 0.0 player.s = 0.0 player.image = LoadImage("car.png") player.shadow = LoadImage("shadow.png") SetClsColor 0,90,0 Repeat Cls If KeyDown(KEY_LEFT) Then player.a:-0.5 If KeyDown(KEY_RIGHT) Then player.a:+0.5 If KeyDown(KEY_UP) Then player.s:+0.01 If KeyDown(KEY_DOWN) Then player.s:-0.05 player.y:-(Cos(player.a)*player.s) player.x:+(Sin(player.a)*player.s) If player.s>2.0 Then player.s=4.0 If player.s<0.0 Then player.s=0.0 If Not KeyDown(KEY_UP) And Not KeyDown(KEY_DOWN) And player.s>0 Then player.s:-0.05 SetRotation player.a DrawImage player.shadow,player.x-5.0,player.y-17.0 DrawImage player.image,player.x-8.0,player.y-20.0 SetRotation 0.0 DrawText String(player.s),0,0 Flip FlushMem() Until KeyHit(KEY_ESCAPE) Die Bilder zum Sample: ![]() ![]() |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
wir sind stolz auf euch. 8) | ||
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group