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

形状、サイズ、図形の相対的な位置、および空間の特性の問題に関係する数学の分野。

6
高速移動オブジェクトの六角形衝突検出?
オブジェクトには位置と速度ベクトルがあります。通常、2つのオブジェクトが衝突するかどうかを確認するために位置のみが使用されます。これは、最初の衝突チェックで最初のオブジェクトの前にあり、その後ろで2番目の衝突チェック。 また、ラインベースの衝突チェックもあります。このチェックでは、各オブジェクトの移動ベクトルが他のオブジェクトの境界ボックスと交差するかどうかのみをチェックします。これは、ポイントの拡張として見ることができます。ただし、高速で移動するオブジェクトが本当に小さい場合にのみ機能します。 だから、私のアイデアは、ポイントを拡大するのではなく、なぜ長方形を拡大しないのですか?これにより、六角形になります。 今、これまでのところとても良い。しかし、この種の2つの六角形が交差するかどうかを実際に確認するにはどうすればよいですか?これらは非常に特殊な六角形であることに注意してください。 ボーナス質問:衝突が発生した場所を正確に(または、ある程度の時間後に)計算することは可能ですか?これは、実際に何がどこで、どのくらいのパワーで発生したかを検出し、衝突からフレームの終わりまでの時間での動きをシミュレートするのに非常に便利です。

2
2つの軸でオブジェクトを回転させているのに、なぜ3番目の軸を中心にねじれ続けるのですか?
この根本的な問題を抱える質問が頻繁に出てきますが、それらはすべて特定の機能やツールの詳細に追いついています。これが出てきたときにユーザーに紹介できる標準的な回答を作成する試みです-多くのアニメーションの例があります!:) 一人称カメラを作っているとしましょう。基本的な考え方は、左右に見えるようにヨーし、上下に見えるようにピッチすることです。そのため、次のようなコードを少し書きます(例としてUnityを使用): void Update() { float speed = lookSpeed * Time.deltaTime; // Yaw around the y axis using the player's horizontal input. transform.Rotate(0f, Input.GetAxis("Horizontal") * speed, 0f); // Pitch around the x axis using the player's vertical input. transform.Rotate(-Input.GetAxis("Vertical") * speed, 0f, 0f); } または多分 // Construct a quaternion or …

9
描画された線の真直度をどのように定量化できますか?
Androidデバイスの画面上で、プレイヤーがポイントA(x1、y1)から他のポイントB(x2、y2)に線を引く必要があるゲームに取り組んでいます。 その図面が直線にどれだけ適合するかを見つけたい。たとえば、90%の結果は、描画がほぼ完全に線に合うことを意味します。プレーヤーがAからBに曲線を描くと、低いスコアが得られます。 エンドポイントは事前にわかりません。これどうやってするの?

4
なぜオブジェクトが90度よりも45度で速く動くのですか?
ゲームには、90度ではなく45度でより速く動くオブジェクトがあります。 各オブジェクトには ポイント(x、y)位置 Vector2D(x、y)方向 Int速度 そして、更新中に私がすることは、新しい位置が次のように計算されるということです。 position.x += direction.x * speed position.y += direction.y * speed これを修正するにはどうすればよいですか?どんな角度でも同じ速度で動くようにしたい。
32 c#  2d  geometry 

1
どのようにして立方体を球体に変えますか?
次のような結果を示す記事に基づいて、四角球を作成しようとしています: キューブを正しく生成できます。 しかし、(上記のリンク先のページから)この式に従ってすべてのポイントを変換すると: x = x * sqrtf(1.0 - (y*y/2.0) - (z*z/2.0) + (y*y*z*z/3.0)); y = y * sqrtf(1.0 - (z*z/2.0) - (x*x/2.0) + (z*z*x*x/3.0)); z = z * sqrtf(1.0 - (x*x/2.0) - (y*y/2.0) + (x*x*y*y/3.0)); 私の球体は次のようになります。 ご覧のとおり、立方体の端はまだ突き出しすぎています。キューブは、の範囲-1に+1記事が言うように、すべての軸に。 何が間違っているのでしょうか?
31 3d  geometry  sphere 

6
ポイントと軸に揃えられた長方形の間の距離を計算するにはどうすればよいですか?
x、yの位置、高さと幅、およびランダムに配置されたポイントが近くにある2D長方形があります。 このポイントが特定の距離より近い場合、このポイントが長方形と衝突するかどうかを確認する方法はありますか?そのポイントの外側にある目に見えない半径が、この長方形と衝突することを想像してください。私はこれが正方形ではないという理由だけで問題があります!

6
3Dベクトルがポイントを表す場合、どのように長さを設定できますか?
ベクトル演算を理解しようとしています(特にUnityエンジンでの使用)。ベクトルがポイント(位置と方向)のみを表す場合でも、ベクトルがどのように長さ(大きさ)を持つことができるのかわかりませんか? それは、大きさが単に原点(0、0、0)からの距離であることを意味しますか?それとも何か不足していますか?
27 vector  geometry 

4
六角タイルマップに相当する3Dはありますか?
おそらく、ヘクスベースのマップタイルとスクエアベースのマップタイルの最大の利点は、各ヘックスの中心が、隣接するすべてのヘックスと同じ距離にあることです。このように3Dでタイル表示する同様の形状と、そのようなモデルをサポートするエンジンはありますか?

4
ヒューリスティック関数として使用すると、マンハッタン距離は単調になりますか?
正方形ベースのマップがあります。水平方向と垂直方向の移動のみが許可されます(対角線は不可)。移動コストは常に1です。 マンハッタン距離を距離ヒューリスティックとして使用して、そのマップにA *アルゴリズムを実装しています。このヒューリスティックな一貫性はありますか?g(node)CLOSEDセットにあるノードに対するチェックを回避できますか? 編集:一貫して私は単調という意味です。

3
プログラムで球をどのように生成しますか?
誰かが球の頂点、インデックス、テクスチャ座標を作成する方法を説明してもらえますか?これを行う方法についてのドキュメントが驚くほど不足しており、私は学習に興味を持っています。 gamedev.netなどで明らかな、グーグル、ルックなどを試してみました。しかし、球体ポイントの生成、それらのインデックス付け、テクスチャリングはカバーしていません。

2
3Dポイントを3Dラインに投影するにはどうすればよいですか?
私は2つの点で定義された線を持っているとしましょう、AとのB両方の形で(x, y, z)。これらの点は、3D空間の線を表します。 またP、同じ形式で定義されたポイントがあり、それは行にありません。 その点の線への投影をどのように計算しますか?私は2Dでこれを行う方法を知っていますが、3Dにはすべてのリソースが盗まれているようです。

5
オブジェクトが接続されたパスの周りをCWまたはCCWで移動しているかどうかを確認するにはどうすればよいですか?
ギザギザの形状があるとしましょう: そして、その輪郭に沿って移動する2つのクリーチャー。 次に、角を引き出して形状を完全に滑らかにします。 これを取得します。 オレンジがCWと緑のCCWを動かしているのは簡単にわかります。形状を滑らかにすることなく、どの方向に移動しているかを知るにはどうすればよいですか? 新しいイメージ
19 geometry 

2
マウスクリックをレイに変換するにはどうすればよいですか?
透視図法があります。ユーザーが画面をクリックすると、マウスポイントから投影される近距離面と遠距離面の間の光線を計算したいので、自分の世界で光線交差コードを実行できます。 私は自分のマトリックスとベクターとレイのクラスを使用していますが、それらはすべて期待どおりに機能します。 ただし、レイをワールド座標に変換しようとすると、遠方は常に0,0,0になるため、レイはマウスクリックからオブジェクト空間の中心ではなく、オブジェクト空間の中心に移動します。(nearとfarのx座標とy座標は同一であり、互いに負であるz座標のみが異なります) GLint vp[4]; glGetIntegerv(GL_VIEWPORT,vp); matrix_t mv, p; glGetFloatv(GL_MODELVIEW_MATRIX,mv.f); glGetFloatv(GL_PROJECTION_MATRIX,p.f); const matrix_t inv = (mv*p).inverse(); const float unit_x = (2.0f*((float)(x-vp[0])/(vp[2]-vp[0])))-1.0f, unit_y = 1.0f-(2.0f*((float)(y-vp[1])/(vp[3]-vp[1]))); const vec_t near(vec_t(unit_x,unit_y,-1)*inv); const vec_t far(vec_t(unit_x,unit_y,1)*inv); ray = ray_t(near,far-near); 何が間違っていますか?(マウスポイントをどのように投影解除しますか?)

3
不規則な形状の面積を計算する方法は?
面積を計算する必要があるループ線セグメントのコレクションによって定義された部屋オブジェクトがあります。クラスは次のように記述できます(擬似コードで)。 class Point { float x; float y; ... float distanceFrom(Point p); } class Segment { Point start; Point end; ... float length(); } class Room { List<Segment> walls; ... float area(); } 部屋の壁はどこでも交差することはできませんが、セグメントの端点と作成された「サブループ」も新しい部屋に分離されます。解は完全に正確である必要はなく(10%の誤差が許容されます)、あまり頻繁に計算されません(<1 / s)。

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

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