Comment detail
ポリゴンを表示するプログラム (Nested Flatten)#6023をscalaに移植しました。 またしても、java-->scala移植の暗黒面に・・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | import scala.swing._
import javax.media.j3d._
import javax.vecmath._
import com.sun.j3d.utils.universe._
import com.sun.j3d.utils.geometry.ColorCube
@SuppressWarnings(Array("serial"))
object Sample3D {
def createSceneGraph() :BranchGroup = {
val objRoot = new BranchGroup();
val objTrans = new TransformGroup();
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objRoot.addChild(objTrans);
val axis = new Transform3D();
axis.rotZ(Math.Pi / 2);
val bounds = new BoundingSphere(new Point3d(), 100.0);
var rotator = new RotationInterpolator(
new Alpha(-1,20 * 4000) ,
objTrans ,
axis ,
0.0F ,
(Math.Pi * 2.0).toFloat);
rotator.setSchedulingBounds(bounds);
objRoot.addChild(rotator);
val objTrans2 = new TransformGroup();
objTrans2.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTrans.addChild(objTrans2);
rotator = new RotationInterpolator(new Alpha(-1, 4000), objTrans2);
rotator.setSchedulingBounds(bounds);
objRoot.addChild(rotator);
objTrans2.addChild(new ColorCube(0.4));
objRoot.compile();
return objRoot;
}
}
object Main extends SimpleGUIApplication {
val config = SimpleUniverse.getPreferredConfiguration();
val canvas = new Canvas3D(config);
//create frame window
def top=new MainFrame{
peer.setBounds(10, 10, 480, 480)
//caption
title = "Sample3D with Scala/Java3D"
val contentPane = peer.getContentPane()
contentPane.setLayout(new java.awt.BorderLayout());
contentPane.add(canvas,java.awt.BorderLayout.CENTER)
} // end of MainFrame
val scene = Sample3D.createSceneGraph();
val universe = new SimpleUniverse(canvas);
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(scene);
}
|





匿名
#6023()
[
Java
]
Rating1/1=1.00
・ポリゴンによって任意の立体を表示する。
・立体は回転させる。
という意味と解釈しました。
Java3Dによって立方体を回転させています。回転はY軸方向とX軸方向のそれぞれで行っています(Y軸方向だけでも良かったのですが、それでは全部の面が見えないのでX軸方向の回転を追加しました)。
Rating1/1=1.00-0+
1 reply [ reply ]