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

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 

4
球面地図表現
私の最新のゲームは、小さな惑星で行われます。球の表面のセルを表すための適切なデータ構造を探しています。三角形、正方形、五角形、六角形?どれが最もストレッチを最小化し、最高のタイリングを作成しますか? 球面マッピングが最も簡単ですが、極での伸びは許容できません。キューブマッピングもかなり簡単ですが、キューブコーナーの近くにまだかなりの伸びがあるでしょう。二十面体を細分化することは、ストレッチの観点からは最適と思われますが、多くの三角形配列のインデックスを作成し、境界で隣接するセルを見つけるという問題があります。 N個の近傍インデックスの配列を持つNゴンを表すポイントの単一の線形配列を使用できると思いますが、それはスペースの巨大な無駄のようです。 ゲームにはRTS要素が含まれているため、影響マップなどを保存し、A *パスファインディングとコンボリューションを実行するため、表現は効率的でなければなりません。
19 maps  sphere 

4
球状の惑星とその領域を読み込む方法は?
私は、部分的に惑星探査で構成されるゲームを設計しています。疑似ランダム生成を使用して、すべての詳細を保存するのではなく、ロードする必要があるときに定義済みのシードから再生成します。これは重すぎます。そのため、プレイヤーが行ったランダムシードと変更をファイルに保存します。 プレイヤーは、軌道から惑星を見ることができる必要があります(非常に低いレベルの詳細で、その後地面に降り、着陸している地域の詳細レベルをゆっくりと上げ、反対側にあるものを降ろします)プレイヤーの視界の外に出る惑星の 平面の地面でそれをしなければならなかった場合、正方形のチャンクシステムで簡単にできます。しかし、ここでの問題は、惑星が-ほとんど-球体であるということです。 それでは、正確なポイントの周りに地面の詳細(レリーフおよび接地されたオブジェクト)をロードする最良の方法は何でしょうか? 私はすでに2つの解決策に取り組んでいますが、どちらにも弱点があります: 1.球体を正方形の塊に切断します。 プレーヤーが地面に十分に近づいたら、彼/彼女の位置から最も近い正方形の詳細を改善する必要があります。 十分でない場合でも、プレイヤーが地面にいるときや地面に本当に近づいているときに読み込むために、各正方形をサブ正方形にカットできます。 しかし、写真でわかるように、プレイヤーがポールに着地しようとすると問題があります:正方形は非常に細い長方形になり、最後の行では三角形になり、さらに多くの読み込みが必要になるという事実に加えて、世代が歪んで表示されます。 2.二十面体から始めます。 ここでは、プレイヤーが近づいているときに、プレイヤーの位置の周りの三角形のテッセレーションを増やすことができます。 しかし、私はプレイヤーの位置よりも近くに三角形を見つける方法を知りません。その場合、デカルト座標が役立つ可能性があると聞きましたが、使用方法はわかりません。 私はそのためにC ++ / OpenGLを使用しているので、ここで生成およびロードする主なものは、表面のレリーフと色/テクスチャを表す頂点です。

6
Unityで特定のオブジェクトに向かって重力を変更する方法は?
Unityには2つの球体があります。1つはサイズが1000倍、もう1つはサイズが1倍です。だから私は、より小さな球体をより大きな球体に引き付けたいと思っています。それではどうすればいいですか。リジッドボディを使用すると、重力によってダウンする可能性があることを知っています。しかし、重力の角度を大きな球体に向けて変更するにはどうすればよいですか?
14 c#  unity  sphere 

1
プログラムで球の中央半分を描く
球の真ん中半分を作成しようとしています。基本的には球を作成するために、スタック番号とスライス番号が与えられ、2つの変数phi(スライス用)とtheta(スタック用)がどれだけ進行するかを担当します。そして、プロセスはボトムキャップ、ボディ、トップキャップの作成に分かれています(以下を参照)。真ん中の半分(theta以下のように真ん中の50%)を達成するには、キャップを省略して、どういうわけかボディを変更する必要があります。スタック番号(1/4*stackNumbers to 3/4*stackNumbers)をいじっていましたが、思い通りの結果が得られませんでした。 真ん中の半分(pi/4 <theta <pi*3/4)を達成するには、球の生成をどのように変更すればよいですか?私の全体的な問題は、球を上部25%、中央50%、下部25%の3つの異なる部分に分割する方法ですか? プログラムで球を生成するための一般的なコードは次のとおりです。 private void generateSphere(int stackNumber, int sliceNumber, boolean facingOut) { int capVertexNumber = 3 * sliceNumber; int bodyVertexNumber = 4 * sliceNumber * (stackNumber - 2); int vertexNumber = (2 * capVertexNumber) + bodyVertexNumber; int triangleNumber = (2 * capVertexNumber) + (6 * sliceNumber …

1
四面体の外接円を見つけるにはどうすればよいですか?
4つの3Dポイントが与えられた場合の四面体外接円の中心座標と半径を見つけるために最も最小化された方程式を探しています。 私がインターネットで見つけたものは、主に平らな3D三角形の外接球、またはいくつかの大まかな数学的定義、または通常の四面体などの非常に単一のケースを扱っています。とにかく私は下の方程式を見つけることができましたが、私は何かを逃しました: -> -> -> let d1, d2, and d3 three vectors of any face of the triangle : | d1x d1y d1z | | x | | d1^2 | 2 * | d2x d2y d2z | * | y | = | d2^2 | | d3x d3y d3z | …
9 3d  sphere 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.