Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подвигать мышкой обьект 
:(
    Опции темы
America
  Дата 9.12.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.12.2005
Где: USA

Репутация: нет
Всего: 1



Не получается подвигать мышкой куб.  Пытаюсь придципить события мышки к ротаторам, которые поворачиваю обьект, не получается smile Хэлп.
Код

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
PM MAIL   Вверх
America
Дата 10.12.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 11.12.2005
Где: USA

Репутация: нет
Всего: 1



 smile Всем спасибо. Ответ нашёл. Может кому понадобится.
Код

import com.sun.j3d.utils.universe.SimpleUniverse;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.Transform3D;

import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.geometry.ColorCube;

import com.sun.j3d.utils.geometry.*;
import javax.vecmath.*;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.TriangleFanArray;
import javax.media.j3d.Geometry;
import javax.media.j3d.Appearance;
import javax.media.j3d.Shape3D;

public class abc {
public abc()
{
    BoundingSphere bounds= new BoundingSphere(new 
            Point3d(0.0, 0.0,0.0), 100.0);
    SimpleUniverse universe = new SimpleUniverse();

       BranchGroup group = new BranchGroup();
       Transform3D rotateX=new Transform3D();
       Transform3D rotateY=new Transform3D();
       Transform3D rotateZ=new Transform3D();
       
    
       rotateX.rotX(Math.PI/8);
       rotateY.rotY(Math.PI/9);
       rotateZ.rotZ(Math.PI/4);
     
       rotateX.mul(rotateZ,rotateY);
       TransformGroup TG= new TransformGroup(rotateX);
       
          
       ColorCube shape=new ColorCube(0.3);
       
       TG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
       TG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
       MouseRotate mouseSpin = new MouseRotate();
       mouseSpin.setTransformGroup(TG);
       mouseSpin.setSchedulingBounds(bounds);
       
       TG.addChild(shape);
       group.addChild(TG);
       group.addChild(mouseSpin);
       universe.getViewingPlatform().setNominalViewingTransform();
       universe.addBranchGraph(group);

}

public static void main( String[] args ) {

   new abc();

}

} // end of the program

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0925 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.