問題タブ [cubes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
802 参照

algorithm - 3D 立方体で選択したポイントを折りたたむ

次の 3D キューブ選択問題の効果的なアルゴリズムを見つけようとしています。

ポイントの 2D 配列を想像して (サイズ x サイズの正方形にしましょう)、それを辺と呼びます。

計算を簡単にするために、max を size-1 として宣言します。6 面の立方体を作成し、0,0 を左下に、max,max を右上に保ちます。z を使用して、単一の立方体が配置されている側を追跡します。y は上、x は右です。

ランダムな単一点を選択するには、次のような 3 つの乱数を使用できます。

プラスを選択するには、特定の方向が現在の辺の内側に収まるかどうかを検出できます。そうでなければ、立方体が中心点に接する側にあることがわかります。

次のような 4 つの関数を使用します。

ここで、ランダムな点で任意の形状 (定義済みのランダムなブロブなど) を選択する方法を見つけたいと思います。ただし、正方形またはギザギザの円のいずれかに調整することで解決します。

実際の表面積はゆがみ、コーナーでそれ自体に折り畳まれますが、これは問題なく、補正する必要はありません (ステッカーを立方体のコーナーに置くことを想像してください。コーナーがステッカーの中心と一致する場合、ステッカーの 4 分の 1 が必要になります)角に貼り付けて折りたたむために取り外します)。繰り返しますが、これは望ましい効果です。

重複選択は許可されていないため、2 回選択されるキューブは何らかの方法でフィルター処理する必要があります (または重複が発生しないように計算する必要があります)。これは、HashSet または List を使用し、ヘルパー関数を使用してエントリが一意かどうかを確認するという単純なものです (選択は常に最大 1000 キューブをはるかに下回るため、これは問題ありません)。

キューブの辺を含むクラスのこの関数のデリゲートは次のようになります。

現在、キューブの各面をチェックして、選択のどの部分がその面にあるかを確認することを考えています。

選択した Point3D の同じ側にある選択部分を計算することは、位置を変換する必要がなく、境界だけであるため、簡単です。次に 5 つの翻訳を行い、その後、他の 5 つの側面をチェックして、選択した領域の一部がその側面にあるかどうかを確認します。

私はこのような問題を解決することに慣れていないので、誰かがこの問題に対するより良い解決策を持っているかどうか疑問に思っていました.

@arghbleargh 詳細な説明をリクエストしました:

6 辺のキューブを使用し、16 のサイズを使用します。各辺は 16x16 ポイントです。配列が次のように開始されるように、サイド、y、x に z を使用した 3 次元配列として格納されます。それもいいでしょう) [z][y][x] しかし、各サブアレイの個別の初期化が必要になります。

選択した点を中心とした 5x5 の正方形を選択してみましょう。このような 5x5 の正方形を見つけるには、問題の軸に 2 を減算して加算します: x-2 を x+2 に、y-2 を y+2 にします。

側面をランダムに選択すると、選択する点は z = 0 (立方体の x+ 側面)、y = 6、x = 6 です。

6-2も6+2もサイドの16×16配列の範囲内に収まっていて選びやすいです。

ただし、選択ポイントを x=0 および y=6 にシフトすると、少し難しくなります。x - 2 では、選択した辺の左側の辺を調べる必要があります。幸いなことに、辺 0 または x+ を選択しました。これは、立方体の上辺または下辺ではなく、上辺または下辺に移動しない限り、すべての軸が x+ = 右、y+ = 上になるためです。したがって、左側の座標を取得するには、最大 (サイズ - 1) - x を減算するだけで済みます。サイズ = 16、最大 = 15、x = 0-2 = -2、最大 - x = 13 を覚えておいてください。したがって、こちら側のサブセクションは x = 13 ~ 15、y = 4 ~ 8 になります。これをパーツに追加すると、元の側で選択すると、選択全体が得られます。

選択範囲を 0,6 にシフトすると、すべての軸が簡単に整列するという安全性に隠れることができないため、より複雑になります。多少の回転が必要な場合があります。可能な翻訳は 4 つだけなので、それでも扱いやすいです。

0,0 にシフトすると、問題が実際に発生し始めます。現在、左と下の両方が反対側に回り込む必要があります。さらに、細分化された部分でも領域が外れるからです。この傷の唯一の救済策は、選択の重複部分を気にしないことです。そのため、可能な場合はそれらをスキップするか、後で結果からフィルターすることができます。

「法線軸」側から下側に移動したので、回転させて正しい座標を一致させ、点がエッジを正しく包み込むようにする必要があります。

各辺の軸は立方体に折りたたまれているため、正しい点を選択するために一部の軸を反転または回転する必要がある場合があります。

エリア内にある立方体上のすべてのポイントを選択するためのより良い解決策があるかどうかという問題が残ります。おそらく、それぞれの側に平行移動行列を与えて、ワールド空間での座標をテストできますか?

0 投票する
1 に答える
6505 参照

ssas - ある環境から別の環境に既存のキューブを追加する SSAS

運用環境にあるキューブを開発環境に追加したいと考えています。開発には追加のキューブがあり、開発環境でキューブを上書きせずに製品から追加のキューブを追加する方法があるかどうかを知りたいです。

0 投票する
1 に答える
244 参照

c# - 可視データのみを描画する方法 XNA 私の方法は機能しません

私は立方体の10 * 10平面を持っています。目に見える立方体だけを描画したいので、バウンディング フラスタムを使用します。問題は、グリッドの最初の立方体 (位置 0,0) が錐台から出ると、すべての立方体が消えることです。

これが私のコードですCube.cs

Draw()のメソッドMain.cs:

また、アトラス テクスチャリングのチュートリアル/サンプルへのリンクを教えていただければ幸いです。ありがとうございます。

0 投票する
0 に答える
91 参照

node.js - キューブは説明のつかない数字を生成します

Cube を使用して動的なビッグデータ分析ツールを構築しようとしています。つまり、これを使用してテストデータを生成しています:

このように、実行時に約 14000 レコードが MongoDB にプッシュされます。

しかし、に行くとlocalhost:1081/1.0/metric?expression=sum(visit)&step=1e4&start=2014-01-14T08:00:00Z&end=2014-01-19T08:00:00Z、そこに表示されているデータは、プッシュされているデータと一致しません。visitsそのページを表示して数字を合計すると、一貫して ~2000 と表示され、非常に不正確なグラフが表示されます。

キューブについてアイデアやリソースを持っている人はいますか? Cube のアイデアは気に入っていますが、ドキュメントがないために多くの時間を無駄にしています。

0 投票する
1 に答える
1760 参照

3d - マーチング キューブ アルゴリズム - 三角形が見つからないようです

私が欲しいのは、作成したボクセル モデルを使用してメッシュを再三角形化することです。

Google 検索から、マーチング キューブが適切なアルゴリズムであることがわかりました。私は多くのチュートリアルを読みましたが、等値面の部分は私を混乱させます。

このチュートリアルhttp://paulbourke.net/geometry/polygonise/に従いますが、私の場合の等値面とは何か、またそれを抽出する方法を正確に理解できません。

それは私の最初の物体表面ですか?

EDIT1:

これまでのところ、再三角測量でこれを行いました。

再三角形化されたオブジェクト

正しいボクセル モデルがあるように見えるため、等値面とボクセルの間に正しい itnersection ポイントを見つけたようです。

ボクセルモデル

しかし、なぜ再三角測量でこれほど多くの三角形が欠けているのでしょうか?

EDIT2:

コードをデバッグしていると、次のことに気付きました。私が使用しているマーチング キューブ テーブルには、等値面がボクセルをカットする頂点へのポインターがあります。これらのトリプレットは、新しい三角形を構成します。しかし、テーブルでは頂点 (たとえば、intersection_point(0)-intersection_point(3)-intersection_point(5)) を使用して三角形を作成するように何度も指示されていますが、交点が異なる位置にあることに気付きました。

-> 交点の位置は、それらが存在するエッジによって異なります。

0 投票する
1 に答える
78 参照

olap - 他のマシンからこれらの xml ファイルにアクセスするにはどうすればよいですか?

Java アプリケーションで olap4j API を介してキューブにアクセスする必要があります。XML キューブ ファイルは、他の IP サーバーで利用できるようになります。たとえば、XML ファイルは 192.168.1.1 IP および C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\geomondrian\WEB-INF\queries パスになります。他のマシンからこれらの xml ファイルにアクセスするにはどうすればよいですか?

他の IP で利用可能なカタログにアクセスできません。以下の私のカタログ URL パスを見つけます。どうすればアクセスできますか?

Catalog=//192.168.1.10/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/geomondrian/WEB-INF/queries/simple_foodMart.xml

0 投票する
1 に答える
733 参照

java - JME3 エンジンと nullPointerException

この質問は、jMonkey 3 エンジンに精通している方に向けたものです。私はsimpleUpdate()ループ内にこのコードを持っています:

そして、私はこのnullPointerExceptionが残っています:

219 行目は次の行です。

私はすでにチェックしておりplayerControlwalkDirection両方ともnullではありません。私の質問は次のとおりです。他に何がnullになる可能性がありますか? このエラーを修正するにはどうすればよいですか? なぜこうなった?今後このようなことが起こらないようにするにはどうすればよいですか? この問題に関するヘルプは大歓迎です。完全なコードを表示する必要がある場合は、質問してください。喜んで共有させていただきます!前もって感謝します!