問題タブ [canvas3d]

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 に答える
1764 参照

java - オフスクリーン レンダリング Canvas3D が機能しないのはなぜですか?

Java3D 1.5.2を使用して、オフスクリーンレンダリングを機能させようとしています。私のソース コードCanvas3Dでは、オフスクリーン レンダリングを行う拡張を にアタッチしようとしましたSimpleUniverseが、そうするとレンダリングが中断されます。

完全なソース コードは、StackOverflow に貼り付けるには少し大きすぎるため、ここのPasteie から入手できるようにしました。

63 行目はコメント アウトされており、通常の Canvas3D が画面上でレンダリングを行います。立方体をレンダリングし、これをJFrame. ただし、コメントを削除すると、オフスクリーン レンダリングにより、オンスクリーン レンダリングがレンダリングされなくなります。また、オフスクリーン レンダリングは "big black nothing" を返しますBufferedImage

オフスクリーン レンダリングを機能させる方法、つまり、回転した立方体のシーンをバッファ イメージにレンダリングする方法を知りたいです。Java3D が提供するオフスクリーン レンダリング用のサンプル コードを見てきましたが、これも同じように実行されます (Rasterオブジェクトを使用してオフスクリーン バッファをオンスクリーン ウィンドウにレンダリングすることを除いて)。

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

virtual - Canvas3D の動きを仮想 3D ワールドの動きに変換するにはどうすればよいですか

私の目標は、マウス ポインターがキャンバス上にある場所になるように、仮想世界で図形を移動することです。

私が持っているもの: - Canvas3D オブジェクト上のマウス位置 (x、y) - Canvas3D ビューポートから始まるピック レイが最初のシーン オブジェクトと交差する場所の Point3d オブジェクト。(ドラッグを開始したい場所の 3D 空間内のポイント)

私が欲しいもの: - Point3dの座標を変換して、最初の交点(Point3dオブジェクト)が常にキャンバス上のマウス位置と重なるようにする方法(ユーザーがクリックしたものを決定するためにピックレイを使用したときと同じ) Canvas3D オブジェクトから)。

ありがとう!

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

java - ビューを水平方向に反転-どのように?

私はJava3Dを初めて使用します。最近、すべてのシーンオブジェクトが左手座標にあることがわかりましたが、Java3Dは右手座標を使用しています。解決策があります。シーンのZ軸を反転し、三角形の巻き順を元に戻します。しかし、これはひどい混乱になります。どういうわけかビューを水平方向に反転させることができれば、必要な仕事をするようです。どうすればこれを達成できますか?どこかにTransform3Dを適用する、ある種のオフスクリーンレンダリング、または...?

事前に10倍!

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

printing - PrintCanvas3D が機能しない

Java3d からグラフィックを印刷しようとすると、一部のコンピューター (Intel ベースのグラフィック カード) が印刷時に完全にクラッシュします。この例外があります。

OpenGL 1.2 にアップグレードする必要があると言われましたが、確認したところ、既に 1.5 がインストールされています (エラー メッセージは正確ではありません)。

IllegalRenderingStateException をキャッチしようとしましたが、うまくいきません。JVM はいずれにしてもクラッシュします。Intel ベースのグラフィック カードで印刷機能を使用する方法を知っている人はいませんか?

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

geometry - Canvas3D の球体を「クリック可能」にする

いくつかの球を保持する Canvas3D があります。ユーザーが球をクリックしたことを検出する方法はありますか?

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

java - Canvas3Dとボタンが重なっているJava3D

私はJava3Dを使用して固体物理学の紹介をしています。内部の多くの3Dを調べた後、さまざまなものをテストするためにいくつかのボタンを配置することにしました。私の問題はここに現れました。

次の図では、setLayout(null)を使用してボタンとCanvas3Dを配置していました。

ここに画像の説明を入力してください

私がここで欲しくないのは:

  • Canvas3Dはボタンと重なります。
  • Canvas3Dは、画像サイズ/ウィンドウサイズの同じ比率を維持するために拡大されないため、ウィンドウのサイズを変更すると、同じサイズになります。

次に、Canvas3Dで、ボタンに「南」、「西」、「東」を使用してsetLayout(new BorderLayout());みました。add("Center",component);下の写真はケースを示しています:

ここに画像の説明を入力してください

これは見た目は良くなりますが、今回は別の問題が発生します。

  • ボタンは私が望んでいたサイズではなく(ウィンドウに伸びる)、私が望んでいたオフセット位置にありません。
  • 「南」のように同じエリアに2つ置くとボタンも重なります。

質問: Canvas3Dと重ならないように、ボタンが希望の位置(x、y)にあり、希望のサイズ(h、w)になっているときに、Canvas3Dをウィンドウに拡大するにはどうすればよいですか。Canvas3DとButtonsの異なるレイアウトを試しました->失敗しました。1つのレイアウトのみが表示されています。

お時間をいただきありがとうございます。

Java3D1.5.2およびEclipse。WindowsXPとIntelCentrino

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

java - 別のイベントを処理しているときにJFrameがイベントに応答しない

次のシナリオがあります。1。ActionListenerを実装する「FrontEnd.java」クラスにJFramejFrame作成します。次に、Canvas3DオブジェクトをそのContentPaneに追加し、その直後に、いくつかのJMenuといくつかのJMenuItemをそれぞれ含むJMenuBarを追加します。2.次に、球をCanvas3Dオブジェクトにレンダリングするために使用するRendererClass.javaクラスがあります。したがって、フロントエンドから、 JMenuItemの1つをクリックして、イベントを処理し、actionPerformedから実行します。(ActionEvent ae)メソッドRendererClass(jFrame)を呼び出し、レンダラー側からjFrameオブジェクトを取得するため、Canvas3Dで球をペイントします。だから、私はそれらを初期の位置にペイントします。3.次に、 RendererClassにある「updateCoordinates()」を呼び出すFrontEndにあるループで球の座標を更新します。これは、最大1分間続く可能性のある重いループです。球の座標を更新している間、Canvas3Dでそれらがどのように更新されているかを示します(各反復で、座標はわずかに変化します)-これはRendererClassのupdateCoordinates()によって行われます。

問題は、actionPerformed(...)メソッドから呼び出されたループ内で、jFrameと対話できず、イベントを閉じられないことです。ループが終了したときに「X」(ウィンドウを閉じる)のループ内をクリックするとウィンドウが閉じるため、実際にリッスンしています。さらに、Canvas3Dでカメラを回転させようとすると、ループが終了するまで回転が更新されません。ループ中に、球が動いているのがわかります。また、ボタンが応答を停止し、応答しなくなります。ドロップダウンJMenuItemsがCanvas3Dの下にあるように見え、アクセスできなくなります。

コードは次のとおりです。

だから、質問は簡単です...なぜJFrameウィンドウが動かなくなってイベントへの応答を停止するのですか?そして、なぜループが終了した後、過去のイベントがすべて突然処理されるのですか?最後になりましたが、このような機能をどのように実装しますか(JFrameを1つのクラスで作成し、それを他のクラスに渡して、Canvas3D内に配置できるようにします...ループ中に対話できるようにします) Canvas3D?

前もって感謝します。

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

java - Java3D-一部のクラスが見つかりませんが、クラスパスが正しく設定されています

正常にコンパイルされるJava3Dを使用するクラスがありますが、実行しようとすると、次のように表示されます。スレッド「main」の例外java.lang.NoClassDefFoundError:javax / media / j3d / Canvas3D

次のスタックトレースを使用します。

私がすでに試したもの:

  1. Java3Djarを/jre/ lib / ext /にコピーするまで、コンパイルすることすらできませんでした。

  2. 最新のJava、Java3Dを使用しており、Notepad ++を使用しており、Java3Dを再インストールしてみました。

  3. クラスパス/パスを正しく設定しました。

  4. コードにエラーはありません。

  5. 作成した通常のJavaアプリケーションを実行できます。

  6. アプリケーションの実行時にクラスパスを使用してみました(java -classpath blahblah ApplicationName)。

  7. 私はjarファイルの内部を確認しましたが、クラス(Canvas3Dを含む)は間違いなくそこにあります。

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

java - JPopupMenu.setDefaultLightWeightPopupEnabled(false) が機能しない

ImageJ 3D Viewer ライブラリ ( http://3dviewer.neurofly.de/ ) を使用しています。ビューアに画像を表示しようとしていますが、ポップアップ メニュー (メニュー オプション) がキャンバスに隠れています。つまり、キャンバスの後ろに消えます。私は全体を見渡しましたが、コンセンサスの答えは、次のコード行を早期に追加する必要があるようです:

これを非常に早い段階で追加しましたが、問題はまだ残っています。誰にもアイデアはありますか?コードを投稿することもできますが、それが本質的な考え方です。JMenuBar を Canvas3D に追加しようとしています。