Entwickler-Ecke
Multimedia / Grafik - GLScene: Schrägen hochlaufen
mimi - Di 26.08.03 17:08
Titel: GLScene: Schrägen hochlaufen
Hallo,
wie kann ich am besten schärgen hochlaufen, hatte versucht, einfach die y postion um 0.1 zu erhöhen hat aber leider nicht so recht funktioniert !
mortus - Mi 27.08.03 17:34
Wenn b die Strecke ist, die du die Schraege hochlaufen willst, und a der Winkel der Schraege zur Waagerechten, dann bekommst du mit y = b*sina die Y-Aenderung und mit x = b*cosa die X-Aenderung heraus.
mimi - Mi 27.08.03 18:04
könntes du mal ein kleines beispiel schreiben ?
ich meine jetzt nur mit den berechungen, wie das jetzt in delphi aussieht.
Alibi - Mi 27.08.03 18:12
Also... Ohne dir nahetreten zu wollen, mimi. Aber wie willst du irgendwas in 3D machen, wenn du nichtmal mit dieser wirklich kleinen Aufgabe klarkommst? Wäre es nicht besser, das Projekt 3D-Shooter laaaange Zeit beiseite zu legen und erstmal ein paar Mathebücher zu lesen?
mimi - Mi 27.08.03 18:41
nein, probleme sind da um sie zu beheben.
und das werde ich auch schaffen....
Alibi - Mi 27.08.03 18:50
Und dazu musst du dir erstmal das nötige Grundwissen aneignen.
Ich meine, hier gab es mal einen Thread über Kollisionen bei dem Spiel Breakout. Ein Lösungsweg ging über Vektoren. Mit dem nötigen Wissen über Vektorrechnung absolut kein Problem. Jedoch wusstest du nicht, was Vektoren sind. Und Vektorrechnung ist wirklich nötig bei 3D-Sachen. Du wirst früher oder später an einen Punkt kommen, an dem dir Komponenten wie GLScene das nicht mehr abnehmen. Deshalb ja: Les was über Vektorrechnung, Matrizen und Trigonometrie. Eben letzteres brauchst du hier.
Johwood - Mi 27.08.03 19:14
Ich hab zwar nie was von Vektorrechnung, Matrizen und Trigonometrie gehört (kommt wohl erst nen paar Stufen über mir), aber oben Genanntes kapiere ich glaube ich doch.
Ich versuch mal, dir zu helfen:
Du gehst ja vielleicht noch nicht die ganze Schräge hoch, sondern nur einen Teil, die Strecke b.
Jede Schräge hat einen Winkel, vom unteren Ende, bis zum oberen Ende, hier a.
Du nimmst etwas an Höhe zu (+auf der Y-Achse), das wird hier y genannt und du gehst ja, weil eine Schräge nicht senkrecht ist auch etwas nach vorne (+auf der X-Achse), das ist dann y.
Mortus lieferte uns ja schon die Rechnungen, nämlich y = b*sina und x = b*cosa !
Du gehst also bei b=1 und a=2 um 1*sin2 nach vorne und um 1*cos2 nach oben...
In Delphi säh das so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var const b=30; a,b=single;
begin
player.x:= player.x + b*cos(a); player.y:= player.y + b*sin(a);
end; |
So
vielleicht verständlicher? :)
mimi - Mi 27.08.03 19:19
danke für eure hilfe, ich habe es alleine hinbekommen *G*
etwas nach deken hilft schon :D
Alibi - Mi 27.08.03 19:41
Wobei man bedenken muss, dass die Trigonometriefunktionen von Delphi relativ langsam sind.
Berechne beim Start des Programmes einfach alle 360 Werte für jeden Sin/Cos Wert.
Ich hab mir für sowas eine .pas generieren lassen, die alle Werte als Konstanten beinhaltet:
http://www.philiplb.de/SinCosTables.pas
mimi - Fr 29.08.03 09:43
und dann ?
ich verstehe dieses sin und cos funktionen noch nicht so gans :(
recall - Mo 01.09.03 13:31
Hallo,
| Zitat: |
| ich verstehe dieses sin und cos funktionen noch nicht so gans |
hoppla ! Na dann fehlt dir aber jede Menge Mathematik, wenn du cosinus und sinus nicht kennst.
Mit dem Forum allein wirst du da nicht weiter kommen: Hol dir ein Mathe-Buch, dass das Wissen bis etwa 12te Klasse Gymnasium enthält.
Das solltest du schon können.
Und ich muss Alibi recht geben, ohne Vektorrechnung kommst du nicht weit und das Proggi wird auch schlecht und langsam werden, und das willst du doch nicht, oder ? Deswegen verzichte ich auch bewusst darauf, dir hier sin() und cos() zu erklären, schliesslich lässt sich das überall nachlesen !
@Alibi: Wozu sollte man Matrizenrechnung bei einem 3D-Spiel benötigen, zumal das eher Uni-Wissen ist 8) ? Höchstens als Funktionendarstellung, aber die Matrixberechnungen sind i.A. langsamer als genäherte Funktionswerte...
Viele Grüsse.
Alibi - Mo 01.09.03 14:35
Also in OpenGL/DirectX (Letzteres nur mal angetestet) stoß ich des häufigeren auf Matrizen. :)
Und Uniwissen? Nö, im Mathe LK haben wir das in der 12., 2. Halbjahr gemacht.
recall - Mo 01.09.03 15:23
| Alibi hat folgendes geschrieben: |
| Also in OpenGL/DirectX (Letzteres nur mal angetestet) stoß ich des häufigeren auf Matrizen. :) |
Hmm... hab ja nicht behauptet was davon zu verstehen, aber mal echt: wozu ?
| Zitat: |
Und Uniwissen? Nö, im Mathe LK haben wir das in der 12., 2. Halbjahr gemacht. |
Schon klar, je nachdem was man schon als "Matrizenrechnung" bezeichnet ;) .
Viele Grüsse.
Alibi - Mo 01.09.03 15:32
Da ich nicht weiß, wie weit das an der Uni geht: 12. Klasse ist für mich Matrizenrechnen. ;)
mimi - Mo 01.09.03 17:06
wie gehe ich denn mit den "Vektorren" um ?
kann mir jemmand ein einfachas beispiel geben oder ?
Alibi - Mo 01.09.03 17:20
Ernsthaft, kauf dir ein Mathebuch... Das kann man nicht in 1 1/2 Sätzen mit 2 Beispielen erklären.
mimi - Mo 01.09.03 17:37
gibts denn keine seiten im web die das erklären ?
das währe hilfereicher....
recall - Mo 01.09.03 18:57
Diese Frage solltest du in folgendem Forum stellen:
http://www.mathe-profis.de
oder einfach mal googeln: Such nach "Lineare Algebra für Schüler" oder so...
Folgende Sachen hab' ich gefunden, die ich denke vielleicht was für dich sind:
http://www.lxplore.de/html/progi.html
(Naja sollten eigentlich mehr werden, muss aber jetzt essen)
Viele Grüsse.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!