Не получается подвигать мышкой куб. Пытаюсь придципить события мышки к ротаторам, которые поворачиваю обьект, не получается  Хэлп. Код | import java.awt.*; import java.awt.event.*;
import javax.media.j3d.Appearance; import javax.media.j3d.BranchGroup; import javax.media.j3d.Geometry; import javax.media.j3d.Shape3D; import javax.media.j3d.Transform3D; import javax.media.j3d.TransformGroup; import javax.media.j3d.RotationInterpolator; import javax.media.j3d.BoundingSphere; import javax.media.j3d.Alpha; import javax.swing.JFrame;
import com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.universe.SimpleUniverse;
public class mover extends Component implements MouseListener, MouseMotionListener{ public int mouseX=0, mouseY=0; int k=0; int Getk(){ return k; } public mover() { addMouseListener(this); addMouseMotionListener(this);
SimpleUniverse universe = new SimpleUniverse();
BranchGroup group = new BranchGroup(); Transform3D rotateX=new Transform3D(); Transform3D rotateY=new Transform3D(); Transform3D rotateZ=new Transform3D(); /* rotateX.rotX(Math.PI/(Math.abs(mouseX-350))/50); rotateY.rotY(Math.PI/7); rotateZ.rotZ(Math.PI/4); */ rotateX.mul(rotateZ,rotateY); TransformGroup TG= new TransformGroup(rotateX); TG.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE); Alpha alpha=new Alpha(Getk(),20000); RotationInterpolator rot= new RotationInterpolator(alpha,TG); BoundingSphere bounds=new BoundingSphere(); rot.setSchedulingBounds(bounds); TG.addChild(rot); TG.addChild(new ColorCube(0.3)); group.addChild(TG);
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(group); }//end of constructor;
public void mouseEntered(MouseEvent me){ mouseX=me.getX(); mouseY=me.getY(); k=1; repaint(); } public void mouseExited(MouseEvent me){ mouseX=0; mouseY=10; k=-1; repaint(); } public void mousePressed(MouseEvent me){ mouseX=me.getX(); mouseY=me.getY(); k=1; repaint(); } public void mouseReleased(MouseEvent me){ mouseX=me.getX(); mouseY=me.getY(); k=-1; repaint(); } public void mouseDragged(MouseEvent me){ mouseX= me.getX(); mouseY= me.getY(); repaint(); } public void mouseMoved(MouseEvent me){ } public void paint(Graphics g){ } public static void main(String[] args) { Component f=new mover(); f.setSize(600+150,600); f.show(); }
public void mouseClicked(MouseEvent me) { // TODO Auto-generated method stub }
}//end class
|
Это сообщение отредактировал(а) America - 9.12.2006, 18:20
|