0

この質問に対する受け入れられた回答:Javaゲーム-プレイヤーが障害物を越えて歩くのを防ぐ方法私はこのコードに出くわしました:

xSpeed = Math.cos(direction) * speed;
ySpeed = Math.sin(direction) * speed;

これは何をしますか?私はそれが方向と速度をx速度とy速度に変換することを読みました(そしてもちろん変数名のために推測しました)。しかし、罪とcosは何のためにあるのでしょうか?これはどのような方向性を受け入れますか?AlekHalfHeartはそれ以上の説明をしなかったので、これは非常に一般的なスニペットだと思いますが、これまで見たことがありません。

4

2 に答える 2

1

オリ・チャールズワースのコメントのおかげで理解できたと思います。「何が起こっているのかを図で描くと、三角形ができます!;)'とかなりの量の図。説明しようと思いますが、英語で数学を学んだことがないので(私はオランダ語です)、すべてに適切な数学用語がわかりませんが、試してみます。

私は最初、O。チャールズワースの三角形がどこにあるのか理解していませんでした。しかし、いくつかの描画の後で、「プレーヤー」が作る動きの線がx軸またはy軸と三角形を形成することがわかりました。
その後、正弦と余弦がそこで何をしたのかまだわかりませんでしたが、数学の本を読み直して一般化した後、x軸と斜辺の関係(プレーヤーの動き-ねえ、私は知っていましたそれを表す英語の単語!)は、「プレーヤー」が移動したx軸に沿った距離に等しい。幸いなことに(偶然ではありませんが、MATHSです)、これはまさにコサインが返すものです。x軸をy軸に、コサインをサインに置き換えると、なぜySpeed = ...機能するのかについての私の説明が得られます。

私の英語の説明が完全に正しくないのではないかと心配していますが、それは私の英語のスキルによるものであり、数学のスキルによるものではありません。私はそれが誰かを助けることを願っています。

PS私は今、私の質問が本当に曖昧であることに気づきました。それはまだ閉じられていない奇跡です。

于 2013-01-08T10:05:55.610 に答える
0

これは数学または物理学の背景であるため、このベクトルコンポーネントの例を見てください。CosとSinは、座標系でのベクトルまたは動きのX成分とY成分を計算するために使用されます。方向は角度であり、動きはベクトルであるため、XおよびYコンポーネントで変換した後、速度が乗算され、最終的に速度のXおよびYコンポーネントが得られます。私は数学の教授ではないので、ご理解いただければ幸いです:)

于 2013-01-06T14:32:01.873 に答える