タグ付けされた質問 「mathematics」

数学の問題は、ゲームの開発で使用される算術、幾何学、微積分、公式およびその他の計算を扱います。

2
タイルグリッドのナビゲーションメッシュを生成するにはどうすればよいですか?
私はまだ実際にこのプログラムのプログラミングを開始していませんが、とにかくこれをどのように実行するかを知りたかったのです。 タイルのグリッドがあり、すべて同じサイズで、一部は通過可能で、一部はそうではないとします。このグリッドからポリゴンのナビゲーションメッシュを作成するにはどうすればよいですか? 私のアイデアは、通過不可能なタイルを取り出して、そこからラインを延長してポリゴンを作成することでした...これまでのところ、これで終わりです。何かアドバイス?

7
PointオブジェクトとVectorオブジェクトが必要ですか?または、単にVectorオブジェクトを使用してPointを表すことは問題ありませんか?
私が友人と一緒に開発しているエンジンのコンポーネントを構築すること(学習目的)で、私はこの疑問に思いつきました。 最初は、次のようなPointコンストラクターがありました。 var Point = function( x, y ) { this.x = x; this.y = y; }; しかし、それらにいくつかのVector数学を追加し始め、Vector2dに名前を変更することにしました。 しかし、現在、行を作成するために使用される次のようないくつかの方法は(少なくとも私の意見では)少し混乱しています。 //before the renaming of Point to Vector2, the parameters were startingPoint and endingPoint Geometry.Line = function( startingVector, endingVector ) { //... }; Pointオブジェクトの特定のコンストラクターを作成する必要がありますか、またはポイントをベクトルとして定義するのに問題はありませんか? ベクトルには大きさと方向がありますが、オブジェクトの位置を表すためだけにベクトルを使用している人が非常に多いと思います。

1
一定の速度で移動するCatmull-Romスプラインの弧長を決定する
Catmull-Romスプラインの連結によって定義されるパスがあります。XNAの静的メソッドVector2.CatmullRomを使用して、0から1の値を持つポイント間の補間を可能にします。 このパスのすべてのスプラインが同じ長さではありません。これは、パスに沿って進行中にすべてのスプラインに対してウェイトを一定の速度にした場合、速度の違いを引き起こします。重量の速度をスプラインの長さに依存させることで、これを改善できます。このようなスプラインの長さを判断するにはどうすればよいですか?スプラインを10本の直線にカットして、それらの長さを合計するだけで近似できますか? スプラインによって定義された生成されたメッシュの動的テクスチャマッピングにこれを使用しています。

6
ゲームエンジンに最適なC ++数学ライブラリですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 次の機能を備えたゲームエンジン用の高速なオープンソースC ++数学ライブラリを探しています。 高速(sse?) ベクトル 行列 四元数 openglとdirectxの両方に適しています
18 c++  mathematics 

5
優れた3D数学理論の書籍[終了]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 私は1年以上にわたってSourceエンジンの修正を開発してきましたが、現在、武器、ゲームの動き(プレイヤーの物理)、および爆発物からのプレイヤーのフィードバックに関するいくつかの問題に直面しています。 これはすべて数学の弱さによるものです!!! どの本、チュートリアル、または他のさまざまなテキストを推薦できますか(あなたを助けてくれました)。
17 3d  books  mathematics 

2
ドット積を使用して2つのベクトル間の角度を取得するにはどうすればよいですか?
ゲームで正規化されたベクトルを使用することを学んでいます。 2つのベクトル間の角度を知るために、ドット積を使用できることを学びました。これにより、-1〜1の値が得られます。 1は、ベクトルが平行で同じ方向を向いていることを意味します(角度は180度です)。 -1は、それらが平行で反対方向を向いていることを意味します(180度のまま)。 0 それらの間の角度が90度であることを意味します。 2つのベクトルのドット積を実際の角度(度単位)に変換する方法を知りたい。たとえば、2つのベクトルの内積がの0.28場合、対応する角度は0〜360度ですか?

1
意図的な不正確さでレトロ/ NESスタイルの物理を再現
バックグラウンド: 私のレトロなプラットフォーマーのリメイクプロジェクトのジャンプ曲線を正しく取得するのに問題があります。元のゲームはNES用であり、プレイヤーのベロシティは2つの別々の部分に保存されます。1バイトが整数で、もう1バイトが小数部分です。 重力はプレーヤーのY速度に0.25 /フレームの割合で追加されます。 プレイヤーがジャンプすると、彼のY速度は-4.64453125に設定されます。ジャンプ曲線の残りの部分は重力に任されています。 プレーヤーが上昇すると、垂直速度は0.25 /フレームの割合で0に収束します。ただし、プレーヤーの速度がゼロ未満の値に達すると、速度は異なるパターンに従って変化します。フレームごとに0.25ずつ着実に減少するのではなく、次のパターンに従います。 [1.75, -0.25, -0.25, -0.25, 1.75, -0.25, -0.25, -0.25, 1.75, ...] 整数オーバーフローと関係があるようです。 データ: 元のデータのダンプを次に示します。速度の表です。 Jump Curve Y-Hi Y-Lo Decimal Change/Frame 4 165 4.64453125 ? 4 101 4.39453125 -0.25 4 37 4.14453125 -0.25 3 229 3.89453125 -0.25 3 165 3.64453125 -0.25 3 101 3.39453125 -0.25 …

6
2Dボイドシミュレーションをどのように並列化できますか
異なるソース(クラスター、gpu)からの処理能力を使用できるように、2Dボイドシミュレーションをどのようにプログラムできますか。 上記の例では、色の付いていない粒子は、クラスター化(黄色)して移動を停止するまで動き回ります。 問題は、左上のエンティティが右下のエンティティと相互作用する可能性は低いものの、すべてのエンティティが潜在的に相互作用する可能性があることです。ドメインが異なるセグメントに分割された場合、全体が高速化される可能性がありますが、エンティティが別のセグメントに移動したい場合は問題が発生する可能性があります。 現時点では、このシミュレーションは良好なフレームレートの5000のエンティティで機能しますが、可能であれば何百万ものエンティティで試してみたいと思います。 これをさらに最適化するために四分木を使用することは可能でしょうか?他の提案はありますか?

3
時計回りにポイントの配列を並べ替える
2Dポイントの配列を時計回りに並べ替えるアルゴリズムはありますか? 私の場合は特に直角三角形を扱っているので、3ポイントだけです。 しかし、そのようなアルゴリズムが存在するかどうかを知りたいのですが、そうでない場合は、三角形の3点を時計回りに返す簡単な方法は何ですか? 編集:私は、凸であるポリゴンの重心に対して時計回りにポイントを計算しようとしています。 更新: これは、選択した回答に基づいて最終的に使用した実装です。パフォーマンスは重要ではなく、たまにしか発生しないため、うまくいきます。 ArrayList<PVector> pointList = new ArrayList<PVector>(); pointList.add(A); pointList.add(B); pointList.add(C); Collections.sort( pointList, new TriangleVectorComparator(origin) ); return pointList; // Comparator package triangleeditor; import java.util.Comparator; import processing.core.PVector; public class TriangleVectorComparator implements Comparator<PVector> { private PVector M; public TriangleVectorComparator(PVector origin) { M = origin; } public int compare(PVector o1, …

3
プラットフォーマーの構築-プレイヤーがジャンプを許可されているかどうかを判断する方法は?
シンプルなPlattformerジャンプアンドランスタイルゲームを構築しています。私はタイルを使用しません-代わりに、レベルエンティティの幾何学的図形を使用します(プレーヤーも1つです)。私は衝突検出コードを完成させましたが、これまでのところすべてが正常に機能しています。 次に、ジャンプを実装したかった。プレーヤーが適切なキーを打ったかどうかを確認し、上方向の速度を追加します。正常に動作します。しかし、プレイヤーが空中であっても機能しますが、これは私が望むものではありません。;-) だから、プレイヤーが何かの上に立っているかどうかを確認する必要があります。私の最初のアイデアは、最後のフレームで衝突があったかどうかを確認し、プレーヤーを「ジャンプ可能」としてマークすることでしたが、プレーヤーが空中の壁に当たった場合でもトリガーされます。私の数学のスキルはそれほど良くないので、私は助けを求めます-ヒントでさえこれを実装する方法を行います。 ありがとう!

2
2つのベクトル間を線形補間するにはどうすればよいですか?
私は、クライアントがどこにいて、どこに行くのかという速度ベクトルを持っています。そして、クライアントがどこにいるかを伝えるサーバーから来る同じベクトルを持っています。時々少し違うので、現在の位置とサーバーの正しい位置の間を補間したいと思います。 黒い矢印はクライアント速度ベクトル、赤い矢印はサーバー上のクライアント速度ベクトル、青い矢印は計算して補間したいものです。 青いベクトルを計算するにはどうすればよいですか?次に、どうすればそれらの間を線形補間できますか?

1
*呼び出し* =(または* =呼び出し*)は、個別の関数を書くよりも遅いですか(数学ライブラリ用)?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 算術関数が次のように見えるいくつかのベクトルクラスがあります。 template<typename T, typename U> auto operator*(const Vector3<T>& lhs, const Vector3<U>& rhs) { return Vector3<decltype(lhs.x*rhs.x)>( lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z ); } template<typename T, typename U> Vector3<T>& operator*=(Vector3<T>& lhs, const Vector3<U>& rhs) { lhs.x *= rhs.x; lhs.y *= …

6
ワールドアラインされた軸の周りでオブジェクトを回転させる方法は?
各軸にオイラー角を持つVector3があります。 通常、回転行列を作成するときは、上記の回転ベクトルからそれぞれの角度を渡すD3DXMatrixRotationXなどの関数を使用し、行列(ZXY)を乗算して、完全なオブジェクト変換行列を形成するために使用される全体的な回転行列を作成します。 ただし、このメソッドはオブジェクト空間で一連の回転を生成します。つまり、(90、0、90)のベクトルをメソッドに渡すと、効果的に(90、90、0)のワールド空間で回転が作成されます。 回転ベクトルの各コンポーネントが、それぞれのワールド空間に配置された軸を中心に回転することを常に保証する方法はありますか? 編集: これは、現在起こっていることのアニメーションです。赤ではなく、青の軸を中心に回転する方法が必要です。 編集2: ただ、オイラー角を含む解決策を探しているのではなく、単に世界の軸を中心とした複数の回転の変換を表現できる方法を探していることに注意してください。

1
「Raiden 2」紫色レーザーの背後にある数学は何ですか?
レーザーの経路は、ユーザー入力と画面に表示される敵の影響を受けます。これがビデオです。5:00に問題のレーザーが表示されます。雷電II(PS)-1ループクリア-パート2 更新 Inkscapeを使用したテストです。船は最下部にあり、最初の4人の敵がプラズマの標的になります。ある種のパターンがあるようです。私は最初に船を動かし、それからハンドルを45°の角度を形成するように動かし、次にカーブにフィットさせようとして平行ハンドルのパターンを見つけ、最後の敵に到達するまで続けました。 更新、5 / 26 / 2012:ベジェを使用してXNAプロジェクトを開始しましたが、まだいくつかの作業が必要であり、来週質問を更新します。乞うご期待 ! 更新:5/30/2012:ベジエ曲線を使用しているようです。このようなグレードのプラズマを複製/模倣できると思います。前回から発見した2つの新しいトピックがあります。アーク長、ルンゲの現象、最初はベジェ曲線上で線形移動を可能にするのに役立ち、次に頂点の数を最適化するのに役立ちます。次回は進行状況を確認できるようにビデオを掲載します8-)

2
なぜ人々は四元数を使うのですか?
私はしばらくの間それらをブラックボックスとして使用していました、私は数学について学んでいるだけですが、この質問に対するいくつかの決定的な答えが欲しいのです。 これまでのところ、私が個人的に遭遇した唯一の利点は、2つの角度間でSLERPを実行できることです。ベクトルで同じ効果を得るには、非常にい回避策が必要です(本質的に0と2PIをリンクします)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.