- ベストアンサー
Java3Dで作成した横置き回転スクリュー軸のパラメータ授受
- Java3D(アプレット)で作成した横置き回転スクリュー軸のパラメータ授受についての質問です。
- Java3Dとアプレット方式を使用し、円筒とスクリューで構成される横置き回転スクリュー軸のプログラムを作成しました。
- しかし、パラメータの受け渡し部分を修正しても正常に表示されません。どの部分を改めれば良いか具体的な指示を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
呼ばれたので来ました(違) アニメーション辺りになってくると私もよく分かりません…。 RotationInterpolatorが使い難くて。 さて、 前回同様initメソッドより先に軸やスクリュー部分のパラメータ設定をしてるので、initメソッド内でそれをやれば良いかと思います。 具体的には、まず createShape3Ds1メソッド内の shaftR、shaftspanの宣言部をコメントアウト。 createShape3Ds2メソッド内の innerR1、outerR1、span1、m1、innerR2、outerR2、span2、m2の宣言部をコメントアウト。 コンストラクタ内の // 第1 BranchGroupオブジェクト 軸(第1物体-shapes1) for( Node shape1 : createShape3Ds1() ) { branch13.addChild( shape1 ); System.out.println(shape1); } // 第2 BranchGroupオブジェクト スクリュー(第2物体-shapes2) for( Node shape2 : createShape3Ds2() ) { branch23.addChild( shape2 ); System.out.println(shape2); } をコメントアウト。 コンストラクタ内 or createSceneGraph1 or createSceneGraph2メソッド内(どこでも可)で branch13.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND); branch23.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND); を追加。 initメソッドの最下部に // 第1 BranchGroupオブジェクト 軸(第1物体-shapes1) BranchGroup bg1 = new BranchGroup(); for( Node shape1 : createShape3Ds1() ) { bg1.addChild(shape1); } branch13.addChild( bg1 ); // 第2 BranchGroupオブジェクト スクリュー(第2物体-shapes2) BranchGroup bg2 = new BranchGroup(); for( Node shape2 : createShape3Ds2() ) { bg2.addChild( shape2 ); } branch23.addChild( bg2 ); を追加。
お礼
lailai2580さん、早速回答いただきありがとうございました。 教えていただいた通りにプログラムソースを直し、トライした結果、解決いたしました。 更に、htmlファイル上でパラメータを変えて、それに応じて形状が変ることも確認いたしました。(一部、私の思い違いで計算式・記述に誤りがあることも露見しました。これについては、ゆっくり直したいと思います。) 結果並びに訂正後のプログラムを、No4として加え、下記にアップしました。 本当にどうもありがとうございました。お礼のポイントは近日中にマークいたします。 http://www.geocities.jp/java3dtest/QA03/question3.html